이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 22.3. 사설 토토 토토 커뮤니티버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

21.3. 사설 토토 데이터베이스

데이터베이스 생성실제로 작동합니다 기존 데이터베이스 복사. 기본적으로 표준을 복사합니다 시스템 데이터베이스 명명template1. 따라서 데이터베이스는입니다."사설 토토"새로운 데이터베이스가 만들어집니다. 에 객체를 추가하면template1,이 객체가 복사됩니다 이후에 사용자 데이터베이스를 작성했습니다. 이 동작은 허용합니다 표준 객체 세트에 대한 사이트-로컬 수정 데이터베이스. 예를 들어 절차 언어를 설치하는 경우pl/perlintemplate1는 자동으로 사용할 수 있습니다 추가 작업이없는 사용자 데이터베이스는 데이터베이스가 생성됩니다.

두 번째 표준 시스템 데이터베이스가 있습니다Template0. 이 데이터베이스에는 동일한 데이터가 포함되어 있습니다 의 초기 내용template1IS, 귀하의 버전으로 사전 정의 된 표준 객체 만PostgreSQL. Template0데이터베이스 후에는 변경해서는 안됩니다 클러스터가 초기화되었습니다. 지시데이터베이스 생성복사Template0대신template1, 당신은 a를 만들 수 있습니다."Virgin"아무것도 포함하지 않는 사용자 데이터베이스 의 사이트-로컬 추가template1. 이것은 복원 할 때 특히 편리합니다pg_dump덤프 : 덤프 스크립트를 복원해야합니다 올바른 내용을 재현 할 수 있도록 버진 데이터베이스 버려진 데이터베이스의 객체와 충돌하지 않고 에 추가되었습니다.Template1나중에.

복사의 또 다른 일반적인 이유Template0대신Template1새로운 인코딩 및 로케일 설정입니다 복사 할 때 지정할 수 있습니다Template0, 반면의 사본은template1동일한 설정. 이건이기 때문입니다.Template1인코딩-특이 적 또는 로케일-특이 적 데이터Template0is 알려지지 않았습니다.

복사하여 데이터베이스 생성Template0, 사용 :

데이터베이스 생성dbname사설 토토 사설 토토 0;

SQL 환경에서 또는 :

createb -t template0dbname

쉘에서.

추가 템플릿 데이터베이스를 만들 수 있습니다 실제로는 데이터베이스를 클러스터에 복사 할 수 있습니다. 이름으로 템플릿으로데이터베이스 생성. 그러나 이것이 (아직) 이해하는 것이 중요합니다. 범용으로 의도"데이터베이스 복사"시설. 교장 제한은 다른 세션이 소스에 연결할 수 없다는 것입니다. 데이터베이스가 복사되는 동안 데이터베이스.생성 데이터 베이스다른 연결이 존재하면 실패합니다 시작; 사본 작동 중에 소스에 대한 새로운 연결이 있습니다 데이터베이스가 방지됩니다.

두 개의 유용한 플래그가 있습니다pg_database각 데이터베이스의 경우 : 열datistemplateandDatallowConn. datistemplate데이터베이스가 사설 토토으로 의도된다는 것을 나타내도록 설정할 수 있습니다. 을 위한데이터베이스 생성. 이 플래그가 설정된 경우 데이터베이스는 모든 사용자가 복제 할 수 있습니다.createb특권; 설정되지 않은 경우에만 슈퍼업자와 데이터베이스 소유자는이를 복제 할 수 있습니다. 만약에DatallowConn거짓이면 새롭지 않습니다 해당 데이터베이스에 대한 연결은 허용됩니다 (그러나 기존 세션 플래그를 false로 설정하여 단순히 종료되지 않습니다). 그만큼Template0데이터베이스는 일반적으로 표시datallowconn = false방지하기 위해 가감. 둘 다Template0andTemplate1항상 표시되어야합니다datistemplate = true.

참고 : template1andTemplate0그 이상의 특별한 상태가 없습니다 이름이라는 사실Template1is 기본 소스 데이터베이스 이름생성 데이터 베이스. 예를 들어, 떨어질 수 있습니다Template1에서 재현Template0악영향없이. 이 과정 부주의하게 많은 것을 추가 한 경우 조치가 권장 될 수 있습니다. 정크에서template1. (삭제하려면Template1pg_database.datistemplate = false.)

thePostgres데이터베이스도 작성되었습니다 데이터베이스 클러스터가 초기화 된 경우 이 데이터베이스는 사용자 및 응용 프로그램에 대한 기본 데이터베이스. 그것은 간단히 사본Template1필요한 경우 떨어지고 재현했습니다.