티스토리 뷰웹개발자/DB Show PostgreSQL 테이블 복사wlsufld 2019. 9. 18. 13:21 구조 복사 구조 + 데이터 복사 '웹개발자 > DB' 카테고리의 다른 글
공유하기 링크 TAGPostgreSQL, 테이블 복사댓글 비밀글 첫 번째 방법쿼리로 수행기본형식
조건 추가가 가능하다
*개발디비에서 컬럼 USE_YN = 'Y' 경우만 운영에 넣음
*종속적으로 영향받는 테이블 때문에 저러한 조건이 나왔음 이미 운영디비 table_name테이블에 데이터를 넣었고 table_name2 테이블에 table_name 테이블 ID가 존재하는데이터만 넣고 싶을 때 저러한 조건문을 썼음 두 번째 방법DBMS를 사용이번에 사용했던 툴은 DBeaver였음. 이 툴을 사용해서 클릭 몇 번으로 덤프를 뜨는게 가능함
Amazon RDS에 대해 PostgreSQL 전송 가능 데이터베이스를 사용하여 두 DB 인스턴스 간에 PostgreSQL 데이터베이스를 전송할 수 있습니다. 이 방법은 서로 다른 DB 인스턴스 간에 대규모 데이터베이스를 마이그레이션하는 매우 빠른 방법입니다. 이 방법을 사용하여 DB 인스턴스가 모두 동일한 메이저 버전의 PostgreSQL을 실행해야 합니다. 이 기능을 사용하려면 소스와 대상 DB 인스턴스 모두에 PostgreSQL 전송 가능 데이터베이스는 RDS for PostgreSQL 11.5 이상 및 RDS for PostgreSQL 버전 10.10 이상에서 사용할 수 있습니다. RDS for PostgreSQL DB 인스턴스에서 다른 RDS로 PostgreSQL DB 인스턴스를 전송하려면 먼저 전송을 위해 DB 인스턴스 설정에 설명된 대로 소스 및 대상 인스턴스를 설정합니다. 그런 다음 PostgreSQL 데이터베이스 전송에 설명된 함수를 사용하여 데이터베이스를 전송할 수 있습니다. 주제
PostgreSQL 전송 가능 데이터베이스 사용에 대한 제한 사항전송 가능 데이터베이스에는 다음과 같은 제한 사항이 있습니다.
PostgreSQL 데이터베이스를 전송하도록 설정시작하기 전에 RDS for PostgreSQL DB 인스턴스가 다음 요구 사항을 충족하는지 확인하세요.
소스 DB 인스턴스에서 대상 DB 인스턴스로 데이터베이스를 전송하려면 각 인스턴스와 연결된 DB 파라미터 그룹을 몇 번 변경해야 합니다. 즉, 소스 DB 인스턴스에 대한 사용자 지정 DB 파라미터 그룹을 생성하고 대상 DB 인스턴스에 대한 사용자 지정 DB 파라미터 그룹을 생성해야 합니다. DB 인스턴스가 이미 사용자 지정 DB 파라미터 그룹을 사용하여 구성된 경우 다음 절차의 2단계부터 시작할 수 있습니다. 데이터베이스 전송을 위한 사용자 지정 DB 그룹 파라미터 구성 다음 단계에서는
PostgreSQL 데이터베이스를 소스에서 대상으로 전송PostgreSQL 데이터베이스를 전송하도록 설정에 설명된 프로세스를 완료한 후에는 전송을 시작할 수 있습니다. 이렇게 하려면 대상 DB 인스턴스에서
예에 표시된
INFO 행은
이 함수를 사용하려면 데이터베이스 사용자 암호를 제공해야 합니다. 따라서 전송이 완료된 후 사용한 사용자 역할의 암호를 변경하는 것이 좋습니다. 또는 SQL 바인드 변수를 사용하여 임시 사용자 역할을 생성할 수 있습니다. 전송에 이러한 임시 역할을 사용한 후 나중에 해당 역할을 삭제하십시오. 전송에 성공하지 못하면 다음과 같은 오류 메시지가 표시될 수 있습니다.
"파일 데이터를 다운로드 실패" 오류 메시지는 작업자 프로세스 수가 데이터베이스 크기에
맞게 올바르게 설정되지 않았음을 나타냅니다.
데이터베이스 전송 중 발생하는 사항PostgreSQL 전송 가능 데이터베이스 기능은 소스 DB 인스턴스에서 대상으로 데이터베이스를 가져오는 풀링 모델을 사용합니다. 전송이 시작되면 소스 데이터베이스의 모든 현재 세션이 종료됩니다. 소스 DB 인스턴스의 소스 데이터베이스 이외의 모든 데이터베이스는 전송의 영향을 받지 않습니다. 소스 데이터베이스는 특수한 읽기 전용 모드로 설정됩니다. 이 모드에 있는 동안 소스 데이터베이스에 연결하고 읽기 전용 쿼리를 실행할 수 있습니다. 그러나 쓰기 가능 쿼리 및 일부 다른 유형의 명령은 차단됩니다. 전송되는 특정 소스 데이터베이스만 이러한 제한의 영향을 받습니다. 전송 중에는 대상 DB 인스턴스를 특정 시점으로 복원할 수 없습니다. 전송은 트랜잭션이 아니며 PostgreSQL 미리 쓰기 로그를 사용하여 변경 사항을 기록하지 않기 때문입니다. 대상 DB 인스턴스에 자동 백업이 활성화되어 있으면 전송이 완료된 후 백업이 자동으로 수행됩니다. 특정 시점으로 복원은 백업이 완료된 후 일정 시간 동안 사용할 수 있습니다. 전송이 실패하면
전송 가능한 데이터베이스 함수 참조
전송을 시작하기 전에 이 함수는 소스 및 대상 DB 인스턴스가 동일한 버전이며 마이그레이션을 위해 호환되는지 확인합니다. 또한 대상 DB 인스턴스 소스에 충분한 공간이 있는지 확인합니다. 구문
반환 값 없음. 파라미터 다음 표에서
예 관련 예제는 PostgreSQL 데이터베이스를 소스에서 대상으로 전송 섹션을 참조하세요 전송 가능한 데이터베이스 파라미터 참조
pg_transport.num_workers 전송 프로세스에 사용할 작업자 수입니다. 기본값은 3입니다. 유효한 값은 1 – 32입니다. 대용량 데이터베이스 전송에서도 일반적으로 8명 미만 작업자가 필요합니다. 전송 중에 대상 DB 인스턴스의 이 설정 값은 대상 및 소스 모두에서 사용됩니다. pg_transport.timing 전송 중 타이밍 정보를 보고할지 여부를 지정합니다. 기본값은 pg_transport.work_mem
각 작업자에게 할당할 최대 메모리 양입니다. 기본값은 PostgreSQL 버전에 따라 131072킬로바이트(KB) 또는 262144KB(256MB)입니다. 최소값은 64MB(65,536KB)입니다. 유효한 값은 이진 base-2 단위로 나타낸 킬로바이트(KB)입니다(1KB = 1024바이트). 전송 시 이 파라미터에 지정된 것보다 적은 메모리를 사용할 수 있습니다. 대용량 데이터베이스 전송에서도 일반적으로 작업자당 256MB(262144KB) 미만의 메모리가 필요합니다. |