source

Postgre로 SQL 덤프 가져오기SQL 데이터베이스

manycodes 2023. 5. 6. 15:14
반응형

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;"

다음 단계를 수행합니다.

  1. psql 셸로 이동합니다.
  2. \c db_name
  3. \i path_of_dump예: -C:/db_name.pgsql]

사후 백업을 복원하기 위해 다양한 솔루션을 시도했습니다.MacOS에서 사용 권한 거부 문제가 발생했습니다. 해결책이 없는 것 같습니다.

다음과 같은 방법으로 작동했습니다.

Pgadmin4는 Postgres입니다.만약 당신이 macOS를 사용한다면 당신은 누를 수 있습니다.CMD+SPACE 및형을 합니다.pgadmin4실행할 수 있습니다.브라우저 탭이 크롬으로 열립니다.

하는 동안 하면 pgadmin4를 사용해 .killall pgAdmin4터미널에서 다시 시도합니다.


pgadmin4 + 백업/복원을 수행하는 단계

백업 생성

데이터베이스 -> "백업"을 마우스 오른쪽 단추로 클릭하여 이 작업을 수행합니다.

여기에 이미지 설명 입력

파일 이름을 지정합니다.

맘에 들다test12345백업을 클릭합니다.덤프가 그면이 에 있지 . 파일 덤프가 생성되지 않습니다..sqlformat

여기에 이미지 설명 입력

다운로드한 위치 보기

화면 오른쪽 하단에 팝업이 표시됩니다.백업을 다운로드한 위치를 보려면 "자세한 정보" 페이지를 클릭하십시오.

여기에 이미지 설명 입력

다운로드한 파일의 위치 찾기

이경우, 은것그입니다./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

반응형