토토 베이 생성실제로는 기존 토토 베이를 복사하여 작동합니다. 기본적으로 이름이 지정된 표준 시스템 토토 베이를 복사합니다.템플릿1.그러므로 해당 토토 베이는“템플릿”새 토토 베이가 만들어집니다. 개체를 추가하는 경우템플릿1, 이러한 개체는 이후에 생성되는 사용자 토토 베이에 복사됩니다. 이 동작을 통해 토토 베이의 표준 개체 집합에 대한 사이트 로컬 수정이 가능합니다. 예를 들어 절차적 언어를 설치하는 경우PL/펄에템플릿1, 토토 베이가 생성될 때 추가 조치를 취하지 않고도 사용자 토토 베이에서 자동으로 사용할 수 있습니다.
그러나,토토 베이 생성토토 베이 수준을 복사하지 않습니다.부여소스 토토 베이에 연결된 권한. 새 토토 베이에는 기본 토토 베이 수준 권한이 있습니다.
이름이 두 번째 표준 시스템 토토 베이입니다.템플릿0.이 토토 베이에는 초기 내용과 동일한 데이터가 포함되어 있습니다.템플릿1, 즉, 귀하의 버전에 의해 사전 정의된 표준 객체만포스트그레SQL. 템플릿0토토 베이 클러스터가 초기화된 후에는 변경되어서는 안 됩니다. 지시함으로써토토 베이 생성복사하다템플릿0대신에템플릿1, 다음을 생성할 수 있습니다.“처녀”사이트-로컬 추가 항목이 전혀 포함되지 않은 사용자 토토 베이템플릿1. 이는 복원할 때 특히 유용합니다.pg_dumpdump: 추가되었을 수 있는 객체와 충돌하지 않고 덤프된 토토 베이의 올바른 콘텐츠를 다시 생성할 수 있도록 덤프 스크립트를 버진 토토 베이에 복원해야 합니다.템플릿1나중에.
복사하는 또 다른 일반적인 이유템플릿0대신템플릿1복사할 때 새로운 인코딩 및 로케일 설정을 지정할 수 있다는 것입니다.템플릿0, 반면에템플릿1동일한 설정을 사용해야 합니다. 그 이유는템플릿1인코딩 특정 또는 로케일 특정 데이터를 포함할 수 있지만템플릿0그렇지 않은 것으로 알려져 있습니다.
복사하여 토토 베이를 생성하려면템플릿0, 사용:
토토 베이 생성db이름템플릿 템플릿0;
SQL 환경에서 또는:
createdb -T template0db이름
셸에서.
추가 템플릿 데이터베이스를 생성하는 것이 가능하며 실제로 이름을 템플릿으로 지정하여 클러스터의 모든 데이터베이스를 복사할 수 있습니다.토토 베이 생성. 그러나 이것이 (아직) 범용 목적으로 의도된 것은 아니라는 점을 이해하는 것이 중요합니다.“토토 베이 복사”시설. 주요 제한 사항은 복사되는 동안 소스 토토 베이에 다른 세션을 연결할 수 없다는 것입니다.토토 베이 생성시작 시 다른 연결이 존재하면 실패합니다. 복사 작업 중에는 소스 토토 베이에 대한 새로운 연결이 차단됩니다.
두 가지 유용한 플래그가 있습니다.pg_database각 토토 베이에 대해: 열datistemplate그리고dataallowconn. datistemplate데이터베이스가 다음에 대한 템플릿으로 의도되었음을 나타내도록 설정할 수 있습니다.토토 베이 생성. 이 플래그가 설정되면 다음을 사용하는 모든 사용자가 데이터베이스를 복제할 수 있습니다.CREATEDB특권; 설정되지 않은 경우 슈퍼유저와 토토 베이 소유자만 복제할 수 있습니다. 만일dataallowconn이 false이면 해당 토토 베이에 대한 새로운 연결이 허용되지 않습니다(단, 플래그를 false로 설정한다고 해서 기존 세션이 종료되지는 않습니다).템플릿0토토 베이는 일반적으로 표시됩니다.dataallowconn = false수정을 방지합니다. 둘 다템플릿0그리고템플릿1항상 다음으로 표시되어야 함datistemplate = true.
템플릿1그리고템플릿0이름이라는 사실 외에는 특별한 지위가 없습니다템플릿1는의 기본 소스 토토 베이 이름입니다.토토 베이 생성. 예를 들어, 드롭할 수 있습니다.템플릿1다음에서 다시 생성템플릿0어떤 부작용도 없이. 부주의하게 많은 정크 파일을 추가한 경우 이 조치를 취하는 것이 좋습니다.템플릿1. (삭제하려면템플릿1, 반드시 있어야 합니다pg_database.datistemplate = false.)
그포스트그레스데이터베이스는 데이터베이스 클러스터가 초기화될 때도 생성됩니다. 이 데이터베이스는 사용자와 애플리케이션이 연결할 기본 데이터베이스로 사용됩니다. 이는 단순히 다음의 사본입니다.템플릿1필요한 경우 삭제하고 다시 생성할 수 있습니다.