토토 베이 생성실제로 작동하는 방법은 다음과 같습니다. 기존 데이터베이스를 복사합니다. 기본적으로 표준을 복사합니다. 이름이 지정된 시스템 데이터베이스템플릿1.따라서 해당 토토 베이는"템플릿"새 토토 베이로부터 만들어집니다. 개체를 추가하는 경우템플릿1, 이 개체는 다음 위치에 복사됩니다. 이후에 사용자 데이터베이스가 생성되었습니다. 이 동작은 다음을 허용합니다. 표준 객체 세트에 대한 사이트 로컬 수정 데이터베이스. 예를 들어 절차적 언어를 설치하는 경우PL/pgSQL에템플릿1, 다음에서 자동으로 사용할 수 있습니다. 이러한 경우 추가 조치를 취하지 않고 사용자 데이터베이스를 데이터베이스가 만들어졌습니다.
이름이 두 번째 표준 시스템 토토 베이입니다.템플릿0.이 토토 베이에는 초기 내용과 동일한 데이터가 포함되어 있습니다.템플릿1, 즉 표준만 귀하의 버전에 따라 사전 정의된 개체PostgreSQL. 템플릿0이후에는 절대 변경하면 안 됩니다initdb. 지시함으로써만들기 토토 베이복사하다템플릿0대신 의템플릿1, 당신은"처녀"다음을 포함하는 사용자 데이터베이스 사이트 로컬 추가 사항 없음템플릿1. 이는 특히 다음과 같은 경우에 편리합니다. 복원 중pg_dumpdump: 덤프 스크립트는 다음을 보장하기 위해 처녀 데이터베이스에서 복원되어야 합니다. 없이 덤프된 데이터베이스의 올바른 내용을 다시 생성합니다. 현재 존재할 수 있는 추가 사항과의 충돌템플릿1.
복사하여 토토 베이를 생성하려면템플릿0, 사용
토토 베이 생성db이름템플릿 템플릿0;
SQL 환경에서 또는
createdb -T template0db이름
셸에서.
추가 템플릿 토토 베이를 생성할 수 있으며, 실제로 특정 토토 베이를 지정하여 클러스터의 모든 토토 베이를 복사할 수 있습니다. 이름을 템플릿으로 사용함만들기 토토 베이. 그러나 이 사실을 이해하는 것이 중요합니다. (아직) 범용으로 사용되지 않습니다."토토 베이 복사"시설. 특히 원본 토토 베이가 유휴 상태여야 합니다. (진행 중인 데이터 변경 트랜잭션 없음) 복사 작업입니다.토토 베이 생성세션(자기 자신 제외)이 연결되어 있지 않은지 확인합니다. 작업 시작 시 원본 데이터베이스가 필요하지만 이는 복사하는 동안 변경이 불가능하다는 것을 보장하지 않습니다. 일관되지 않은 토토 베이 복사가 발생합니다. 따라서 템플릿으로 사용되는 데이터베이스는 읽기 전용으로 처리됩니다.
두 가지 유용한 플래그가 있습니다.pg_database각 토토 베이에 대해: 열datistemplate그리고dataallowconn. datistemplate다음을 나타내도록 설정될 수 있습니다. 데이터베이스는 다음을 위한 템플릿으로 사용됩니다.만들기 토토 베이. 이 플래그가 설정되면 데이터베이스는 다음을 통해 복제될 수 있습니다. 다음을 가진 모든 사용자CREATEDB특권; 그렇다면 설정되지 않은 경우 슈퍼유저와 토토 베이 소유자만 사용할 수 있습니다. 그것을 복제하십시오. 만일dataallowconn거짓입니다. 그렇다면 해당 토토 베이에 대한 새로운 연결은 허용되지 않습니다(그러나 기존 단순히 플래그를 false로 설정한다고 해서 세션이 종료되는 것은 아닙니다.템플릿0토토 베이는 일반적으로 표시됩니다.dataallowconn = false방지하기 위해 그것의 수정. 둘 다템플릿0그리고템플릿1항상 다음으로 표시되어야 합니다.datistemplate = true.
템플릿 토토 베이를 준비하거나 토토 베이를 변경한 후 하나, 공연하는 것이 좋습니다.진공 정지또는진공 완전 동결에 그 토토 베이. 다른 열려 있는 항목이 없을 때 이 작업을 수행하면 동일한 토토 베이의 트랜잭션인 경우 모든 트랜잭션이 보장됩니다. 토토 베이의 행은"냉동"그리고 거래 ID 랩어라운드 문제가 발생하지 않습니다. 이 이는 다음과 같은 데이터베이스에 특히 중요합니다.dataallowconnfalse로 설정하세요. 일상적인 유지보수가 불가능함진공그러한 토토 베이에서. 참조섹션 21.1.3용 자세한 정보.
참고: 템플릿1그리고템플릿0특별한 것은 없습니다 이름이라는 사실을 넘어서는 상태템플릿1은 기본 소스 토토 베이 이름입니다. 에 대한토토 베이 생성및 기본값 다음과 같은 다양한 프로그램에 대한 데이터베이스 연결생성된 DB. 예를 들어, 드롭템플릿1다음에서 다시 생성템플릿0어떤 부작용도 없이. 이 조치는 다음과 같은 경우에 권장될 수 있습니다. 부주의하게 쓰레기 더미를 추가했습니다.템플릿1.