이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 22.3. 템플릿 토토 커뮤니티버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

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

데이터베이스 생성실제로 작동하는 방법은 다음과 같습니다. 기존 데이터베이스를 복사합니다. 기본적으로 표준을 복사합니다. 이름이 지정된 시스템 데이터베이스사설 토토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로 설정한다고 해서 종료되지는 않습니다.사설 토토0데이터베이스는 일반적으로 표시됩니다.dataallowconn = false그것을 방지하기 위해 수정. 둘 다사설 토토0그리고사설 토토1항상 다음으로 표시되어야 함datistemplate = true.

참고: 사설 토토1그리고사설 토토0이외의 특별한 지위는 없습니다. 사실 이름사설 토토1이것은 의 기본 소스 데이터베이스 이름만들기 데이터베이스. 예를 들어, 드롭할 수 있습니다.사설 토토1그리고 그것을 다시 생성하세요사설 토토0어떤 부작용도 없이. 이 과정은 부주의하게 많은 항목을 추가한 경우 조치를 취하는 것이 좋습니다. 정크 인사설 토토1. (삭제하려면사설 토토1, 반드시 있어야 합니다pg_database.datistemplate = false.)

포스트그레스데이터베이스도 생성되었습니다 데이터베이스 클러스터가 초기화될 때. 이 데이터베이스는 사용자와 애플리케이션이 연결할 기본 데이터베이스입니다. 그것은 단순히 사본사설 토토1그리고 될 수 있습니다 필요한 경우 삭제하고 다시 생성했습니다.