Oracle 筆記總結
阿新 • • 發佈:2018-12-28
--建立使用者
create user NF_NFZC identified by NF_NFZC;
--修改口令
alter user NF_NFZC identified by 123456;
--刪除使用者
drop user NF_NFZC;
--使用者授權
grant connect, resource to 使用者名稱;
grant connect, resource to NF_NFZC;
--撤銷許可權
語法: revoke connect, resource from 使用者名稱;
列子: revoke connect, resource from NF_NFZC;
--建立角色
語法: create role 角色名;
例子: create role testRole;
--授權角色
語法: grant select on class to 角色名;
列子: grant select on class to testRole;
--刪除角色
語法: drop role 角色名;
例子: drop role testRole;
--授權dba角色
grant dba to NF_NFZC
===========================================匯入匯出===============================================================
--從源資料庫匯出:
exp user1/ [email protected] file=c:\temp\exp.dmp tables=(table1, table2)
匯入到標資料庫:
imp user2/[email protected] file=c:\temp\exp.dmp tables=(table1, table2)
---exp 匯出表
exp NF_NFZC/[email protected] file=/u01/IGIS_LOCATION_COPY.dmp tables=IGIS_LOCATION_COPY log=/u01/IGIS_LOCATION_COPY.log
imp 匯入表(按使用者匯入)
imp SBZS/ [email protected] file=/u01/IGIS_LOCATION_COPY.dmp FROMUSER=NF_NFZC TOUSER=SBZS tables=IGIS_LOCATION_COPY
---expdp 匯出表
select * from dba_directories;
--建立資料匯出目錄expnc_dir為目錄名
create directory expnc_dir as 'E:\ncdatabak';
--為oracle使用者授予訪問資料目錄的許可權
Grant read,write on directory expnc_dir to dxzyjt;
--匯出表
expdp system/ [email protected] tables=HX_DJ.dj_nsrxx dumpfile=djnsrxx.dmp directory=DMP;
--匯入表從HX_DJ匯入SBZS使用者下面
impdp system/123456 DIRECTORY=DATA_PUMP_DIR DUMPFILE=djnsrxx.dmp REMAP_SCHEMA=HX_DJ:SBZS;
--字符集問題排查:http://www.cnblogs.com/lishupeng/p/5605558.html
--資料泵倒資料總結
一、匯出
--1)匯出使用者
expdp scott/[email protected] schemas=scott dumpfile=expdp.dmp directory=oracleBak_dir
--2)匯出表
expdp scott/[email protected] tables=emp,dept dumpfile=expdp.dmp directory=oracleBak_dir
--3)按查詢條件導
expdp scott/[email protected] directory=oracleBak_dir dumpfile=expdp.dmp tables=emp query=’where deptno=20’
--4)按表空間導
expdp system/[email protected] directory=oracleBak_dir dumpfile=tablespace.dmp tablespaces=temp,example
--5)導整個資料庫
expdp system/[email protected] directory=oracleBak_dir dumpfile=full.dmp full=y
二、匯入資料
--1)匯入使用者(從使用者scott匯入到使用者scott)
impdp scott/[email protected] directory=oracleBak_dir dumpfile=expdp.dmp schemas=scott
--2)匯入表(從scott使用者中把表dept和emp匯入到system使用者中)
impdp system/[email protected] directory=oracleBak_dir dumpfile=expdp.dmp tables=scott.dept,scott.emp remap_schema=scott:system
--3)匯入表空間
impdp system/[email protected] directory=oracleBak_dir dumpfile=tablespace.dmp tablespaces=example
--4)匯入資料庫
impdb system/[email protected] directory=oracleBak_dir dumpfile=full.dmp full=y
--5)追加資料
impdp system/[email protected] directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action
三、並行匯出
expdp system/[email protected] tables=HX_DJ.dj_nsrxx dumpfile=djnsrxx_%U.dmp directory=DMP;
--注意:dumpfile 引數擁有一個萬用字元 %U,它指示檔案將按需要建立,格式將為expCASES_nn.dmp,其中nn 從 01 開始,然後按需要向上增加。
==========================================檢視字符集=============================================================
select userenv('language') from dual;
==========================================表空間================================================================
set linesize 300;
set pagesize 300;
set timing on;
--Look TableSpace Use
--查看錶空間方法一:
select ff.*, ff.maxsize_gb-ff.used_gb as sygb from (
select tablespace_name,
round(used_space*(select value from v$parameter where name='db_block_size')/power(2,30),2) USED_GB,
round(tablespace_size*(select value from v$parameter where name='db_block_size')/power(2,30)) MAXSIZE_GB,
round(used_percent,2) as "PCT%"
from dba_tablespace_usage_metrics
) ff where ff."PCT%" >60 order by ff."PCT%" desc;
--查看錶空間方法二:
select tbs_used_info.tablespace_name,
tbs_used_info.alloc_mb,
tbs_used_info.used_mb,
tbs_used_info.max_mb,
tbs_used_info.free_of_max_mb,
tbs_used_info.used_of_max as "used_of_max_pct%"
from (select a.tablespace_name,
round(a.bytes_alloc / 1024 / 1024 / 1024) alloc_mb,
round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024 / 1024) used_mb,
round((a.bytes_alloc - nvl(b.bytes_free, 0)) * 100 /
a.maxbytes) used_of_max,
round((a.maxbytes - a.bytes_alloc + nvl(b.bytes_free, 0)) /
1024 / 1024 / 1024) free_of_max_mb,
round(a.maxbytes / 1024 / 1024 / 1024) max_mb
from (select f.tablespace_name,
sum(f.bytes) bytes_alloc,
sum(decode(f.autoextensible,
'YES',
f.maxbytes,
'NO',
f.bytes)) maxbytes
from dba_data_files f
group by tablespace_name) a,
(select f.tablespace_name, sum(f.bytes) bytes_free
from dba_free_space f
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name(+)) tbs_used_info where tbs_used_info.used_of_max>10
order by tbs_used_info.used_of_max desc;
-- Look TableSpace Path 查看錶空間路徑
-- select * from dba_data_files f where f.TABLESPACE_NAME='TS_SSSL_DAT_2018';
-- Extend TablesSpace 擴充套件表空間
-- ALTER TABLESPACE TS_SSSL_DAT_2018 ADD DATAFILE '+DSDATA/snltnfzc/datafile/ts_sssl_dat_35.dbf' SIZE 30G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
--建立表空間
CREATE TABLESPACE SBZS_DATA
LOGGING
DATAFILE '/u01/app/oracle/oradata/XE/SBZS_DATA001.DBF'
SIZE 50M
AUTOEXTEND ON
NEXT 50M MAXSIZE 20480M
EXTENT MANAGEMENT LOCAL;
CREATE TABLESPACE TS_HX_DJ_DATA
LOGGING
DATAFILE '/u01/app/oracle/oradata/XE/TS_HX_DJ_DATA001.DBF'
SIZE 50M
AUTOEXTEND ON
NEXT 50M MAXSIZE 20480M
EXTENT MANAGEMENT LOCAL;
CREATE TABLESPACE NFZC_DATA
LOGGING
DATAFILE '/u01/app/oracle/oradata/XE/NFZC_DATA001.DBF'
SIZE 50M
AUTOEXTEND ON
NEXT 50M MAXSIZE 20480M
EXTENT MANAGEMENT LOCAL;
---查看錶空間
select username,default_tablespace from dba_users;
---如果想要修改使用者的永久表空間可以執行命令:
alter user user default tablespace tablespaceName;
例如:alter user SBZS default tablespace SBZS_DATA --其中第二個user為要操作的使用者,tablespaceName為將要設定的預設表空間名稱。
---如果想修改新新增的使用者的預設表空間可以執行如下命名:
alter database default tablespace tablespaceName,這樣新建立的使用者的預設表空間就為tablespaceName
--根據儲存過程內容查詢儲存過程名稱
select * from all_source f where f.type='PROCEDURE' and f.text like '%%';
--更改表空間為SBZS_DATA
alter table SBZS.DJ_NSRXX move tablespace SBZS_DATA;
--針對某個使用者設定預設表空間
alter user user_name default tablespace tbs_name;