Oracle DB 생성, 백업, 복구

Chan·2021년 12월 13일

Oracle

목록 보기
8/17

명령어 정리

drop user apa55353 cascade;
-- 유저 삭제 후 새로 시작
create user apa55353 identified by  "tiger" default tablespace apa55353_ts temporary tablespace temp;
select * from dba_users;
grant connect, resource to apa55353;
grant imp_full_database, exp_full_database to apa55353;
alter user apa55353 quota 30G on apa55353_ts;
alter user apa55353 quota 5G on system ;

-- 터미널 sqlplus '/as sysdba'에서만 가능,
GRANT SELECT ON V_$SESSION TO apa55353;
GRANT SELECT ON V_$SQL_PLAN_STATISTICS_ALL TO apa55353;
GRANT SELECT ON V_$SQL TO apa55353;


-- 생성 확인용
SELECT * FROM all_TABLES where owner='APA55353';
select * from user_tables;
select * from dba_tablespaces;
SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'APA55353';
SELECT COUNT(*) FROM APA55353.CUST;
SELECT COUNT(*) FROM APA55353.SALES_ORDER;

-- 테이블 생성 예시
create table tb_a 
(id number,
nam varchar2(100)
);
SELECT COUNT(*) FROM APA55353.TB_A;




터미널에서 SFTP 통신으로 파일 복사하기

////// cmd ///////
C:\Users\user>cd apa55353.dmp 경로

C:\Users\user\apa55353.dmp 경로>sftp -o port=22 root@아이피 주소

sftp> pwd
Remote working directory: /root
sftp> cd /oradata
sftp> pwd
Remote working directory: /oradata
sftp> put apa55353.dmp
Uploading apa55353.dmp to /oradata/apa55353.dmp
apa55353.dmp                                             100%  385MB  28.3MB/s   00:13
sftp>
C:\Users\user\Desktop\211213>




TS 생성, 백업, 복구

※ 원격파일전송			sftp -o port=22 username@000.000.000.000
				
						bi	필수 모드 변경
						mget	서버에서 현재 접속 클라이언트 PC로 파일 가져오기
						mput	클라이언트(현재 접속 Win PC)에서 서버로 올리기
						ls	서버의 폴더 및 파일 
						!dir	클라이언트의 폴더 및 파일 정보


[OS Prompt] sqlplus '/as sysdba'

--------------------------------
-- TableSpace 생성
--------------------------------
cd /ordata/
mkdir apa55353

SQL> create tablespace apa55353_ts  datafile '/oradata/apa55353/apa55353_data.dbf' size 1500m;

[OS Prompt] cd /oradata/apa55353
[OS Prompt] pwd
[OS Prompt] du -sm ./apa55353*.*

SQL> select TABLESPACE_NAME , file_name, bytes/1024/1024 mb 
     from   dba_data_files 
     where  tablespace_name = 'APA55353_TS';
     
SQL> select TABLESPACE_NAME,BLOCK_SIZE,EXTENT_MANAGEMENT,SEGMENT_SPACE_MANAGEMENT 
     from    dba_tablespaces;

--------------------------------
-- TableSpace 크기 확대
--------------------------------


SQL> alter tablespace apa55353_ts add datafile '/oradata/apa55353/apa55353_data1.dbf' size 1G;
SQL> alter database datafile '/oradata/apa55353/apa55353_data.dbf' resize 2G;


-----------------------------------------------------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-----------------------------------------------------------------------------------------------------------------------
--------------------------------
--Oracle User 삭제/초기화
--------------------------------
[OS Prompt] sqlplus '/as sysdba'
SQL> drop user apa55353 cascade; ← ■ 필요시 수행

--------------------------------
--Oracle User 생성
--------------------------------
[OS Prompt] sqlplus '/as sysdba'

SQL> create user apa55353 identified by  "tiger" default tablespace apa55353_ts temporary tablespace temp ;

SQL> grant connect, resource to apa55353;			--기본 접속, 오브젝트 권한

SQL> GRANT SELECT ON V_$SESSION TO apa55353;			--성능 권한
SQL> GRANT SELECT ON V_$SQL_PLAN_STATISTICS_ALL TO apa55353;
SQL> GRANT SELECT ON V_$SQL TO apa55353;

SQL> grant imp_full_database, exp_full_database to apa55353;	--exp, imp 권한 

SQL> alter user apa55353 quota 30G on apa55353_ts ;		--용량 권한
SQL> alter user apa55353 quota 5G on system ;


SQL> set pagesize 50
SQL> col username for a20
SQL> col account_status for a17
SQL> col default_tablespace for a20
SQL> col temporary_tablespace for a15
SQL> select username,  default_tablespace from dba_users where username = 'APA55353';

--------------------------------
--Oracle User 확인
--------------------------------
SQL> conn scott/tiger
Connected.
SQL> show user
USER is "SCOTT"
SQL>

	ETC) 사용자에게 부여된 ROLE 확인
		SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'APA55353';

	Etc)  ROLE에 부여된 시스템 권한 확인
		SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'RESOURCE' ;
		SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'CONNECT' ;
		SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'EXP_FULL_DATABASE' ;
		SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'IMP_FULL_DATABASE' ;

	ETC) 사용자에게 부여된 시스템 권한 확인
		SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'APA55353' ;

	ETC) 타 사용자에게 부여한 객체(테이블등) 권한 확인
		SELECT * FROM DBA_TAB_PRIVS
		WHERE OWNER = '테이블소유자명' ;
		또는,
		SELECT * FROM DBA_TAB_PRIVS
		WHERE GRANTEE = '권한부여자명' ;




--------------------------------
--실험 기본 데이터 생성/복구
--------------------------------
[prompt] su - oracle
[prompt] cd /oradata/imp_exp
[prompt] whoami
[prompt] imp apa55353/tiger file=apa55353.dmp log=apa55353_imp.log.log buffer=102400000  commit=n fromuser=apa55353 touser=apa55353 ignore=yes
	[prompt] imp apa55353/xxxxx file=apa55353.dmp log=apa55353_imp.log.log buffer=102400000  commit=n fromuser=apa55353 touser=apa55353 ignore=yes tables=ACCOUNT
	[prompt] imp apa55353/xxxxx file=apa55353.dmp log=apa55353_imp.log.log buffer=102400000  commit=n fromuser=apa55353 touser=apa55353 ignore=yes tables=Dept
	[prompt] imp apa55353/xxxxx file=apa55353.dmp log=apa55353_imp.log.log buffer=102400000  commit=n fromuser=apa55353 touser=apa55353 ignore=yes tables=Emp  
	[prompt] imp apa55353/xxxxx file=apa55353.dmp log=apa55353_imp.log.log buffer=102400000           fromuser=apa55353 touser=apa55353 rows=no	← ■ 오브젝트만 추가시

--------------------------------
--실험 기본 데이터 백업 
--------------------------------
exp apa55353/tiger owner=apa55353 log=apa55353_exp.log file=apa55353_new.dmp direct=y statistics=none  ← ■ 필요시 수행
profile
Backend Web Developer

0개의 댓글