Postgre로 SQL 덤프 가져오기SQL 데이터베이스
호스트를 전환하고 있으며 이전 호스트는 Postgre의 SQL 덤프를 제공했습니다.우리 사이트의 SQL 데이터베이스.
이제 로컬 WAMP 서버에서 이를 테스트하도록 설정하려고 합니다.
유일한 문제는 Postgre에서 이 데이터베이스를 가져오는 방법을 모른다는 것입니다.제가 설정한 SQL 9.
pgAdmin III를 사용해봤는데 '가져오기' 기능이 없는 것 같습니다.그래서 방금 SQL 에디터를 열고 덤프의 내용을 거기에 붙여 실행하면 테이블이 생성되지만 데이터를 넣으려고 하면 계속 오류가 발생합니다.
ERROR: syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...
The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view nl ...
명령 프롬프트에서도 이 작업을 수행하려고 했지만 필요한 명령을 찾을 수 없습니다.
내가 하면,
psql mydatabase < C:/database/db-backup.sql;
나는 오류를 이해합니다.
ERROR: syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
^
데이터베이스를 가져오는 가장 좋은 방법은 무엇입니까?
psql databasename < data_base_dump
이것이 당신이 찾고 있는 명령입니다.
주의:databasename
가져오기 전에 만들어야 합니다.Postgre를 보세요.SQL 문서 23장. 백업 및 복원.
찾고 있는 명령어가 여기 있습니다.
psql -h hostname -d databasename -U username -f file.sql
나는 당신이 psql에서 실행하기를 원한다고 믿습니다.
\i C:/database/db-backup.sql
그것은 나에게 효과가 있었습니다.
sudo -u postgres psql db_name < 'file_path'
이것이 OP의 상황에 적합한지는 모르겠지만 대화형 콘솔에서 다음 명령을 실행하는 것이 제게 가장 유연한 솔루션이라는 것을 알게 되었습니다.
\i 'path/to/file.sql'
이미 올바른 데이터베이스에 연결되어 있는지 확인하십시오.이 명령은 지정된 파일의 모든 SQL 명령을 실행합니다.
꽤 잘 작동합니다. 명령줄에는 모든 인수가 필요합니다. -W는 암호입니다.
psql -h localhost -U user -W -d database_name -f path/to/file.sql
그냥 재미로, 만약 당신의 덤프가 압축된다면 당신은 다음과 같은 것을 할 수 있습니다.
gunzip -c filename.gz | psql dbname
야곱이 언급했듯이, 포스트그레는SQL 문서는 이 모든 것을 매우 잘 설명합니다.
가져올 데이터베이스가 생성되었는지 확인한 다음 덤프를 가져올 수 있습니다.
sudo -u postgres -i psql testdatabase < db-structure.sql
전체 데이터베이스를 덮어쓰려면 먼저 데이터베이스를 삭제합니다.
# be sure you drop the right database !!!
#sudo -u postgres -i psql -c "drop database testdatabase;"
다시 생성합니다.
sudo -u postgres -i psql -c "create database testdatabase;"
다음 단계를 수행합니다.
- psql 셸로 이동합니다.
\c db_name
\i path_of_dump
예: -C:/db_name.pgsql]
사후 백업을 복원하기 위해 다양한 솔루션을 시도했습니다.MacOS에서 사용 권한 거부 문제가 발생했습니다. 해결책이 없는 것 같습니다.
다음과 같은 방법으로 작동했습니다.
Pgadmin4는 Postgres입니다.만약 당신이 macOS를 사용한다면 당신은 누를 수 있습니다.CMD
+SPACE
및형을 합니다.pgadmin4
실행할 수 있습니다.브라우저 탭이 크롬으로 열립니다.
하는 동안 하면 pgadmin4를 사용해 .
killall pgAdmin4
터미널에서 다시 시도합니다.
pgadmin4 + 백업/복원을 수행하는 단계
백업 생성
데이터베이스 -> "백업"을 마우스 오른쪽 단추로 클릭하여 이 작업을 수행합니다.
파일 이름을 지정합니다.
맘에 들다test12345
백업을 클릭합니다.덤프가 그면이 에 있지 . 파일 덤프가 생성되지 않습니다..sql
format
다운로드한 위치 보기
화면 오른쪽 하단에 팝업이 표시됩니다.백업을 다운로드한 위치를 보려면 "자세한 정보" 페이지를 클릭하십시오.
다운로드한 파일의 위치 찾기
이경우, 은것그입니다./users/vincenttang
pgadmin에서 백업 복원
1~4단계를 올바르게 수행했다고 가정하면 이진 파일이 복원됩니다.동료가 로컬 컴퓨터에서 복원 파일을 사용하려고 할 수도 있습니다.그 사람이 pgadmin으로 가서 복원했다고 말했습니까?
데이터베이스 -> "복원"을 마우스 오른쪽 단추로 클릭하여 이 작업을 수행합니다.
파일 검색기 선택
파일 위치를 수동으로 선택해야 하며, pgadmin의 업로더 필드에 파일을 드래그 앤 드롭하지 마십시오.오류 권한이 발생할 수 있기 때문입니다.대신 방금 만든 파일을 찾습니다.
해당 파일 찾기
오른쪽 아래의 필터를 "모든 파일"로 변경해야 할 수도 있습니다.이후 4단계부터 파일을 찾습니다.이제 오른쪽 아래 "선택" 버튼을 눌러 확인합니다.
해당 파일 복원
파일 위치를 선택하면 이 페이지가 다시 나타납니다.어서 복원하십시오.
성공
모두 정상이면 오른쪽 아래에 성공적인 복원을 나타내는 표시기가 팝업됩니다.테이블로 이동하여 각 테이블의 데이터가 복원되었는지 확인할 수 있습니다.
성공적이지 못한 경우:
9단계가 실패할 경우 데이터베이스에서 이전 공용 스키마를 삭제해 보십시오."쿼리 도구"로 이동합니다.
다음 코드 블록 실행:
DROP SCHEMA public CASCADE; CREATE SCHEMA public;
이제 5단계에서 9단계를 다시 시도하십시오. 잘 될 것입니다.
요약
이렇게 하면 오류 권한 문제가 발생하여 슈퍼 사용자로 로그인할 수 없을 때 Postgres에서 백업/복원을 수행할 수 있습니다.또는 또쓰다사음용읽여기하설대기/에한증정자명격는을 사용하여 읽기합니다.chmod
워크플로우는의 " 이진합니다.이 워크플로우는 pgadmin의 이진 파일 덤프 기본값인 "Custom"에 대해 작동합니다. 생각엔 마아.sql
같은 방법이지만, 저는 아직 그것을 테스트하지 않았습니다.
사용자:
cat /home/path/to/dump/file | psql -h localhost -U <user_name> -d <db_name>
이것이 누군가에게 도움이 되기를 바랍니다.
파일을 사용하는 경우.dump
확장 사용:
pg_restore -h hostname -d dbname -U username filename.dump
많은 경우 암호 없이 postgres 사용자만 존재하는 localhost의 경우 많은 예제가 너무 복잡하다는 것을 알게 되었습니다.
psql -d db_name -f dump.sql
pgadmin3에서 할 수 있습니다.덤프에 포함된 스키마를 삭제합니다.그런 다음 데이터베이스를 마우스 오른쪽 단추로 클릭하고 복원을 선택합니다.그런 다음 덤프 파일을 찾아볼 수 있습니다.
이거 썼어요.
psql -d dbName -U username -f /home/sample.sql
Postgresql12
sql 파일: pg_restore -d 데이터베이스 < 파일에서.sql
사용자 지정 형식 파일: pg_restore -Fc 데이터베이스 < file.dump
데이터가 100MB가 넘었기 때문에 Pgadmin4를 사용하여 데이터베이스를 복원할 수 없었습니다.
나는 postgres 클라이언트를 사용했고, 아래 명령어를 씁니다.
postgres@khan:/$pg_restore -database_name/home/khan/Downloads/dump.sql
그것은 잘 작동했고 몇 초가 걸렸습니다.자세한 내용은 아래 링크를 참조하십시오.https://www.postgresql.org/docs/8.1/app-pgrestore.html
언급URL : https://stackoverflow.com/questions/6842393/import-sql-dump-into-postgresql-database
'source' 카테고리의 다른 글
모든 분기 및 태그를 포함하여 로컬 Gitrepo를 새 원격으로 푸시 (0) | 2023.05.06 |
---|---|
테이블 값 함수에서 변수 선언 (0) | 2023.05.06 |
Git 하위 모듈에서 변경사항을 "커밋"하려면 어떻게 해야 합니까? (0) | 2023.05.06 |
SQL Server 데이터베이스 크기 선택 (0) | 2023.05.06 |
iis 7.0에서 .net Framework 4.0 웹 사이트를 실행하는 데 문제가 있습니다. (0) | 2023.05.06 |