Oracle數(shù)據(jù)庫(kù)操作

Oracle庫(kù)操作

日常運(yùn)維(庫(kù)操作)


備庫(kù)導(dǎo)出

能oracle用戶登陸的情況(應(yīng)用于測(cè)試庫(kù)瓮栗,可以直接ssh連上數(shù)據(jù)庫(kù))

Linux的bash命令:

today=`date +%Y%m%d-%s`
user=USERNAME
directory=test
expdp system/oracle directory=${directory} dumpfile=${user}-${today}-%U.dmp logfile=${user}-${today}.log parallel=4 schemas=${user} filesize=1G compression=all

說(shuō)明:

  • directory要事先創(chuàng)建辩块。
  • %U是01烙常、02、03等等召耘。
  • parallel并行命令不一定有用百炬。
  • schemas可以理解為數(shù)據(jù)庫(kù)用戶名。
  • 規(guī)定filesize可以防止文件過(guò)大怎茫。
  • compression=all或NONE收壕,all的速度快妓灌,體積小轨蛤。

不能直接登陸的情況(生產(chǎn)環(huán)境)

Windows批處理命令:

rem 設(shè)置年月日字符串
set "str_yymmdd=%date:~,4%%date:~5,2%%date:~8,2%"
set "user=USERNAME"
rem 導(dǎo)出庫(kù)
expdp system/orcl directory=tgdb_databack dumpfile=%str_yymmdd%_%U.dmp logfile=%str_yymmdd%.log network_link=GZHS_DBLINK filesize=1G parallel=4 schemas=%user% compression=all

說(shuō)明:

  • 首先建立本地的oracle庫(kù)蜜宪,用來(lái)備份。
  • directory建立祥山,在Directories圃验。
  • network_link建立,在database links里面缝呕。

備庫(kù)導(dǎo)入(linux端澳窑,ssh登錄)

  • 刪除用戶

drop user USERNAME cascade;
--無(wú)法刪除用戶的情況
--先查看連接用戶,用戶名大寫(xiě)
select username, sid, serial# from v$session where username='USERNAME';
--殺掉進(jìn)程供常,先sid摊聋,后serial
alter system kill session'**,**';
--批量刪除進(jìn)程
SELECT 'ALTER SYSTEM KILL SESSION '||''''||SID||''''||','||''''||SERIAL#||''''||';' as KILLER FROM V$SESSION WHERE USERNAME='username';
--如果殺不掉,仍然drop不掉用戶
--關(guān)閉監(jiān)聽(tīng)器
lsnrctl stop
--打開(kāi)監(jiān)聽(tīng)器
lsnrctl start
alter system register
--關(guān)閉oracle
shutdown abort
--啟動(dòng)oracle
startup
  • 新建用戶

  • 導(dǎo)入備庫(kù)

impdp system/oracle directory=dmp_import dumpfile=a_%U.dmp logfile=a.log remap_schema=OLDNAME:NEWNAME transform=oid:n tables=SCHEMANAME.TABLENAME
nohup impdp system/oracle directory=TEST1 dumpfile=20170805_%U.DMP logfile=20170805.log remap_tablespace=YSS_GZHS:YSS_GZHS_ZZS remap_schema=GZHS:GZHS_ZZS schemas=GZHS transform=oid:n &

說(shuō)明:

  1. transform=oid:n栈暇,這一個(gè)參數(shù)最好加上麻裁,涉及到用戶權(quán)限的問(wèn)題。
  2. remap_schema源祈,這個(gè)參數(shù)是導(dǎo)出的庫(kù)的用戶是第一個(gè)煎源,導(dǎo)入的庫(kù)的用戶是第二個(gè)。
  3. tables香缺,是要導(dǎo)入的表手销。

其它命令

Directory

--用于創(chuàng)建導(dǎo)入目錄,記住就可以
create directory dmp_import as ‘/home/oracle/dmp_import’;
--查看目錄
select * from dba_directories

查看各個(gè)表的占用空間

select segment_name, sum(bytes)/1024/1024/1024 from user_segments group by segment_name order by sum(bytes) desc
select sum(bytes)/1024/1024/1024 from user_segments where segment_name in ('TD_BALANCECHECK', 'MSG_MESSAGE', 'TD_GZBCHECK')

查看各個(gè)用戶的表空間

select distinct(t.tablespace_name) from dba_tab_partitions t where t.table_owner in('EA_IPMP','ES_SYSTEM','ES_DBA');
select t.table_owner,t.tablespace_name from dba_tab_partitions t where t.table_owner in('EA_IPMP','ES_SYSTEM','ES_DBA') group by t.table_owner,t.tablespace_name;

登入sql命令

sqlplus / as sysdba

啟動(dòng)數(shù)據(jù)庫(kù)

startup

啟動(dòng)監(jiān)聽(tīng)程序

lsnrctl status

表空間

--查看表空間
select tablespace_name from dba_tablespaces;
--查看表空間文件
select file_name,tablespace_name from dba_data_files;
--新建表空間
create tablespace yss_gzhs datafile size 5G autoextend on next 1G maxsize unlimited;
create tablespace YSS_GZHS datafile '/u01/oradata/tgdb136/YSS_GZHS1.dbf' size 10G autoextend on next 1G maxsize unlimited;
--表空間不夠時(shí)(最大32G)图张,加表空間
alter tablespace yss_gzhs add datafile size 5G autoextend on next 1G maxsize unlimited;
--指定文件加表空間
alter tablespace YSS_TZJD add datafile '/dbfile/tsthttg/YSS_TZJD2.dbf' size 10G autoextend on next 1G maxsize unlimited;
--指定文件加temp表空間
ALTER TABLESPACE temp ADD tempfile '/dbfile/oradata/tstdb/temp02.dbf' SIZE 5G AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED;
--刪除表空間
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

新建用戶

--查看用戶
select username,password from dba_users;
--新建用戶
create user xbrl identified by xbrl default tablespace YSS_XBRL;
grant connect,resource,dba to xbrl;
--新建查詢用戶
create user queryuser identified by query12345678
--grant unlimited tablespace to queryuser;
--grant create session to queryuser;
grant connect to queryuser;
grant select any table to queryuser;
grant select any dictionary to queryuser;
--修改用戶密碼
alter user system identified by oracle;
--執(zhí)行權(quán)限賦權(quán)
grant execute on UTL_RECOMP to es_dba;

鎖定用戶

--解鎖用戶
alter user USERNAME account unlock;
--鎖定用戶
alter user USERNAME account lock;
--Oracle密碼錯(cuò)誤次數(shù)過(guò)多賬號(hào)鎖定的問(wèn)題锋拖,修改為無(wú)限次
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
--將密碼設(shè)置成永不過(guò)期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

賦權(quán)用戶

-- Create the user 
create user gzhsfa
identified by Myjsy,Bjwqt_0
  default tablespace USERS
  temporary tablespace TEMP
  profile PROFILEUSER;
-- Grant/Revoke object privileges
grant execute on ISSKDFY to gzhsfa;
-- Grant/Revoke system privileges 
grant create session to gzhsfa;
grant select any table to gzhsfa;
grant select,insert,update,delete on gzhs.tp_shareholder to gzhsfa;

生產(chǎn)環(huán)境需要的命令

  1. archive log list;

Oracle數(shù)據(jù)庫(kù)表備份

  • create table as select方式

create table TABLENAME_YYYYMMDD as select * from TABLENAME;

缺點(diǎn):

  • 不能將原表中的default value也一同遷移過(guò)來(lái)。

  • not null約束祸轮,其他的約束和trigger是帶不過(guò)來(lái)了姑隅,嚴(yán)格說(shuō)來(lái)not null也是約束的一種。

  • exp/imp備份倔撞、導(dǎo)入單個(gè)表/多個(gè)表

--備份用戶
exp USERNAME/PASSWORD@IP:PORT/INSTANCENAME file=/oradata/dmp_import/zjqs.dmp log=file.log owner=USERNAME buffer=65535
--備份指定表
exp USERNAME/PASSWORD@IP:PORT/INSTANCENAME file=/oradata/dmp_import/zjqs.dmp log=file.log tables=TABLENAME buffer=65535
--導(dǎo)入表讲仰、用戶
imp USERNAME/PASSWORD fromuser=OLDUSERNAME touser=NEWUSERNAME commit=y ignore=y file=/oradata/dmp_import/zjqs.dmp log=file.log tables=TABLENAME
--導(dǎo)出導(dǎo)入
exp userid=USERNAME/PASSWORD@IP/SERVICENAME tables=(tmtx_plan,tmtx_planmx,tmtx_plan_pk) file=d:\temp\tmtx.dmp
imp userid=USERNAME/PASSWORD@IP/SERVICENAME tables=(tmtx_plan,tmtx_planmx,tmtx_plan_pk) file=d:\temp\tmtx.dmp

Oracle服務(wù)名

創(chuàng)建服務(wù)名

ALTER SYSTEM SET service_names='tljjtg' SCOPE=BOTH;

lsnrctl status會(huì)看到多出一個(gè)service來(lái)


Oracle歸檔

創(chuàng)建歸檔目錄

mkdir /dbfile/archive

開(kāi)啟歸檔

sqlplus / as sysdba;
shutdown immediate;
startup mount;
alter database archivelog;
show parameters dest;
alter system set log_archive_dest_1='localtion=/dbfile/archive' scope=both;--如果報(bào)錯(cuò)
alter system set log_archive_dest_1='localtion=/dbfile/archive' scope=spfile;--如果報(bào)錯(cuò)
create pfile='/home/oracle/pfile.ora' from spfile;
exit;

在pfile.ora文件增加如下語(yǔ)句

*.log_archive_dest_1='location=/dbfile/archive'
*.log_archive_dest_state_1=enable
*.log_archive_format=tstdb_%t_%s_%r.arc
sqlplus / as sysdba;
shutdown immediate;
create spfile from pfile='/home/oracle/pfile.ora';
startup mount;
show parameters archive;
select log_mode from v$database;
alter database open;
exit;

創(chuàng)建delarc.sh

#!/bin/bash
. ~/.bash_profile
export ORACLE_SID=tstdb
DATE1=`date '+%Y%m%d'_%H%M%S`

$ORACLE_HOME/bin/rman << EOF
connect target / ;
run {
    allocate channel ch1 device type disk;
    crosscheck archivelog all;
    delete noprompt archivelog until time 'sysdate-0.05';
    release channel ch1;
}
exit;
EOF

加入crontab

* * */24 * *  sh /home/oracle/delarc.sh

模擬切換歸檔日志

sqlplus / as sysdba;
alter system archive log current;
exit;

其他Oracle配置

Weblogic的Oracle數(shù)據(jù)源配置

jdbc:oracle:thin:@168.168.201.136:1521:tgdb136

PL/SQL的數(shù)據(jù)源配置

數(shù)據(jù)庫(kù)填寫(xiě)168.168.201.136/tgdb136

Database Link

  • DBLINK創(chuàng)建

create public database link LINKNAME connect to USERNAME identified by PASSWORD using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.147.129.29)(PORT=2521)))(CONNECT_DATA=(SERVICE_NAME=cdrdb)))';
  • DBLINK刪除

drop database link LINKNAME;

Oracle官方文檔

p102025301120——Linux-x86-64_1of7.zip database安裝介質(zhì)
p102025301120——Linux-x86-64_2of7.zip database安裝介質(zhì)
p102025301120——Linux-x86-64_3of7.zip grid安裝介質(zhì)
p102025301120——Linux-x86-64_4of7.zip client安裝介質(zhì)
p102025301120——Linux-x86-64_5of7.zip gateways安裝介質(zhì)
p102025301120——Linux-x86-64_6of7.zip example
p102025301120——Linux-x86-64_7of7.zip deinstall

  • 批量導(dǎo)庫(kù)腳本

    #!/bin/sh
    str_dumpfile="20170314_%U.DMP"
    str_logfile="20170314.log"
    str_schemas="gzhs,zjqs"
    str_directory="dmp_import"
    
    rm -rf sql1.log sql2.log
    
    lsnrctl stop
    
    sqlplus sys/oracle as sysdba 1>sql1.log 2>&1 <<EOF!
    shutdown abort;
    startup;
    drop user gzhs cascade;
    drop user zjqs cascade;
    create user gzhs identified by 1 default tablespace YSS_GZHS;
    create user zjqs identified by 1 default tablespace YSS_ZJQS;
    grant connect,resource,dba to gzhs;
    grant connect,resource,dba to zjqs;
    exit;
    EOF!
    
    cat sql1.log
    
    impdp system/oracle directory=${str_directory} dumpfile=${str_dumpfile} logfile=${str_l
    ogfile} schemas=${str_schemas} transform=oid:n parallel=8
    lsnrctl start
    sqlplus sys/oracle as sysdba 1>sql2.log 2>&1 <<EOF!
    set autocommit on;
    CREATE OR REPLACE FUNCTION MD5(
                id VARCHAR2)
    RETURN VARCHAR2
    IS
        retval varchar2(32);
    BEGIN
        retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => id));
        RETURN retval;
    end;
    /
    update gzhs.tp_asset set fsetname=MD5(fsetname);
    update gzhs.tp_asset set ffullname=MD5(ffullname);
    update zjqs.t_para_product set fname=MD5(fname);
    update zjqs.t_acct_fundaccount set fshort_name =SUBSTR(MD5(fshort_name),1,20) where fsh
    ort_name is not null;update zjqs.t_deploy_server set FIPADDRESS='168.168.204.89',FPORT=7002,FURL='http://168
    .168.204.89:7002/sofa' where FIPADDRESS='168.12.1.58';update gzhs.ts_user  set FPASSWORD='670b14728ad9902aecba32e22fa4f6bd';
    update zjqs.t_user set FPWD='670b14728ad9902aecba32e22fa4f6bd';
    
    alter system register;
    exit;
    EOF!
    
    cat sql2.log
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市痪蝇,隨后出現(xiàn)的幾起案子鄙陡,更是在濱河造成了極大的恐慌,老刑警劉巖躏啰,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趁矾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡给僵,警方通過(guò)查閱死者的電腦和手機(jī)毫捣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)详拙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蔓同,你說(shuō)我怎么就攤上這事饶辙。” “怎么了斑粱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵弃揽,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我则北,道長(zhǎng)矿微,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任尚揣,我火速辦了婚禮涌矢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘快骗。我一直安慰自己娜庇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布滨巴。 她就那樣靜靜地躺著思灌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恭取。 梳的紋絲不亂的頭發(fā)上泰偿,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音蜈垮,去河邊找鬼耗跛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛攒发,可吹牛的內(nèi)容都是我干的调塌。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼惠猿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼羔砾!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起偶妖,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤姜凄,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后趾访,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體态秧,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年扼鞋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了申鱼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愤诱。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捐友,靈堂內(nèi)的尸體忽然破棺而出淫半,到底是詐尸還是另有隱情,我是刑警寧澤楚殿,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布撮慨,位于F島的核電站竿痰,受9級(jí)特大地震影響脆粥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜影涉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一变隔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蟹倾,春花似錦匣缘、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至豁陆,卻和暖如春柑爸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盒音。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工表鳍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祥诽。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓譬圣,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親雄坪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子厘熟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容