반응형
#### 서버에서 ####
# 백업
pg_dump -U [username] -h [host] -p [port] -F c -b -v -f /path/to/backup_file.dump [database_name]
• -U [username]: PostgreSQL 사용자명.
• -h [host]: 데이터베이스 호스트 (예: localhost).
• -p [port]: 포트 번호 (기본값: 5432).
• -F c: 백업 파일을 사용자 정의 형식으로 저장.
• -b: 데이터베이스 바이너리 데이터 포함.
• -v: 자세한 출력 표시.
• -f: 백업 파일 경로.
• [database_name]: 백업할 데이터베이스 이름.
#### 로컬에서 ####
# 백업 가져오기
scp <username>@<ip혹은 주소>:/home/username/exp_camp_backup.dump /로컬컴퓨터폴더지정
# psql 접속
psql -U postgres # 경우에따라 postgres로 접속이 안되는 경우가 있다. 나의경우엔 mac 유저네임만 접속이 가능했다.
psql postgres # psql 일반적인 실행방법
# db 생성
\du # 유저 확인
CREATE USER your_user WITH PASSWORD 'your_password'; #유저네임을 기존과 같게하는게 편하다
GRANT ALL PRIVILEGES ON DATABASE your_database TO your_user; #새유저에게 권한주기
CREATE DATABASE <db이름> OWNER <유저네임>; #마찬가지로 db이름을 백업과 같은걸로 하는게 좋다
\q # 종료
# 복원
pg_restore -U <your_user> -d <your_database> --clean --if-exists /path/to/your_backup.dump
# --clean: 기존 테이블을 삭제 후 복원.
# --if-exists: 존재하지 않는 테이블 삭제 시 오류 방지.
#### 문제가 있을 경우 #####
# 쓰기권한 확인
ls -ld /usr/local/var/postgres
# drwxr-xr-x 2 root admin 4096 Dec 12 19:30 /usr/local/var/postgres 출력
# 소유권 변경
sudo chown -R $(whoami) /usr/local/var/postgres
# drwxr-xr-x 2 $(whoami) admin 4096 Dec 12 19:30 /usr/local/var/postgres
# postgresql 서버재시작
pg_ctl -D /usr/local/var/postgres start
# 여전히 접속이 안되면 초기화
initdb /usr/local/var/postgres
###################
# db 권한 확인
\l
# table 확인
\dt
# db 삭제
DROP DATABASE IF EXISTS exp_camp;
# db 소유자 변경 (복원 후 데이터베이스 소유자가 원하는 계정과 다를 경우, 소유자를 변경합니다)
ALTER DATABASE <db네임> OWNER TO <새소유자>;
'Code' 카테고리의 다른 글
git 사용하기. (0) | 2024.12.16 |
---|---|
ios 시뮬레이터 업데이트 (0) | 2023.09.20 |