토토 꽁 머니 생성실제로 작동합니다 기존 토토 꽁 머니 복사. 기본적으로 표준을 복사합니다 시스템 토토 꽁 머니 명명template1.따라서 해당 토토 꽁 머니는입니다."템플릿"새 토토 꽁 머니 만들어졌습니다. 에 객체를 추가하면template1,이 객체가 복사됩니다 이후에 사용자 토토 꽁 머니를 작성했습니다. 이 동작은 허용합니다 표준 객체 세트에 대한 사이트-로컬 수정 토토 꽁 머니. 예를 들어 절차 언어를 설치하는 경우pl/pgsqlintemplate1는 자동으로 사용할 수 있습니다 추가 작업이없는 사용자 토토 꽁 머니는 토토 꽁 머니가 만들어졌습니다.
두 번째 표준 시스템 토토 꽁 머니가 있습니다Template0.이 토토 꽁 머니는의 초기 내용과 동일한 데이터를 포함합니다.template1, 즉 표준 만 귀하의 버전으로 사전 정의 된 개체PostgreSQL. Template0후에는 변경되지 않아야합니다initdb. 지시생성 데이터 베이스복사Template0대신 의template1, 당신은 a를 만들 수 있습니다."Virgin"포함하는 사용자 토토 꽁 머니 사이트-로컬 첨가물 중 어느 것도template1. 이것은 특히 편리합니다 a 복원pg_dump덤프 : 덤프 버진 토토 꽁 머니에서 스크립트를 복원하여 덤프 된 토토 꽁 머니의 올바른 내용을 재현하지 않고 지금 존재할 수있는 추가와의 충돌Template1.
복사하여 토토 꽁 머니 생성Template0, 사용
토토 꽁 머니 생성dbname템플릿 템플릿 0;
SQL 환경에서 또는
createb -t template0dbname
쉘에서.
추가 템플릿 데이터베이스를 만들 수 있습니다 실제로는 데이터베이스를 클러스터에 복사 할 수 있습니다. 이름으로 템플릿으로생성 데이터 베이스. 그러나 이것을 이해하는 것이 중요합니다 (아직)는 일반적인 목적으로 의도되지 않았습니다"데이터베이스 복사"시설. 특히 소스 데이터베이스가 유휴 상태가되어야합니다. (데이터 조정 트랜잭션이 진행 중) 기간 동안 복사 작업.토토 꽁 머니 생성세션 (자체 이외의)이 연결되지 않은지 확인합니다. 작업 시작시 소스 데이터베이스이지만 사본 중에 변경을 수행 할 수 없음을 보장하지 않습니다. 절차로 인해 복사 된 데이터베이스가 일관되지 않습니다. 따라서 템플릿으로 사용되는 데이터베이스를 권장합니다 읽기 전용으로 취급.
두 개의 유용한 플래그가 있습니다pg_database각 토토 꽁 머니의 경우 : 열datistemplateandDatallowConn. datistemplatea 토토 꽁 머니는 템플릿으로 의도되어 있습니다.생성 데이터 베이스. 이 플래그가 설정되면 토토 꽁 머니가 복제 될 수 있습니다. 모든 사용자createb특권; 만약 설정되지 않았으며 슈퍼 사용자와 토토 꽁 머니의 소유자 만 복제하십시오. 만약에DatallowConn는 거짓입니다 해당 토토 꽁 머니에 대한 새로운 연결은 허용되지 않습니다 (그러나 기존 깃발을 거짓으로 설정하여 세션은 단순히 죽지 않습니다). 그만큼Template0토토 꽁 머니는 일반적으로 표시datallowconn = false방지합니다 그것의 수정. 둘 다Template0및template1항상 표시되어야합니다datistemplate = true.
템플릿 토토 꽁 머니를 준비한 후 하나, 수행하는 것이 좋습니다진공 꼭 매달리게 하다해당 데이터베이스에서. 그렇지 않은 경우 이것이 완료된 경우 동일한 데이터베이스의 다른 공개 트랜잭션은 다음과 같습니다. 데이터베이스의 모든 행이임을 보장합니다."Frozen"그리고 트랜잭션 ID의 적용을받지 않습니다 랩 어라운드 문제. 이것은 특히 a에 중요합니다 가질 토토 꽁 머니datallowconn세트 일상적인 유지 보수를하는 것은 불가능하기 때문에 거짓으로진공그러한 토토 꽁 머니에서. 보다섹션 21.1.3더 많은 정보.
참고 : template1andTemplate0특별한 것이 없습니다 이름 이외의 상태Template1는 기본 소스 토토 꽁 머니 이름입니다 을 위한토토 꽁 머니 생성및 기본값 와 같은 다양한 프로그램의 경우 토토 꽁 머니 간 연결createb. 예를 들어, 할 수 있습니다 떨어지다template1Template0악영향없이. 이 행동 과정은 부주의하게 많은 쓰레기를 추가했습니다template1.