1. 服務(wù)端安裝
https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html
https://www.w3cschool.cn/oraclejc/oraclejc-eswu2qqq.html
創(chuàng)建數(shù)據(jù)庫(kù)在dos命令窗口使用DBCA命令舱污,配置監(jiān)聽(tīng)使用netca命令会前。
2. 客戶端安裝和監(jiān)聽(tīng)配置
export LANG=en_US.UTF-8
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
https://jingyan.baidu.com/article/455a99506b426da1662778c2.html
如果要使用客戶端或數(shù)據(jù)庫(kù)工具在客戶端訪問(wèn)oracle服務(wù)端嫌吠,必須要安裝oracle客戶端并配置監(jiān)聽(tīng)营搅,配置監(jiān)聽(tīng)也可以通過(guò)更改E:\app\Administrator\product\11.2.0\client_1\network\admin\tnsnames.ora
在服務(wù)端SQL/PLUS工具中運(yùn)行如下可以得到服務(wù)名:select global_name from global_name;
1、$lsnrctl?status:檢查當(dāng)前監(jiān)聽(tīng)器的狀態(tài)
2矫限、$lsnrctl start [listener-name] 啟動(dòng)所有的監(jiān)聽(tīng)器,可以指定名字來(lái)啟動(dòng)特定的監(jiān)聽(tīng)器
3哺哼、$lsnrctl stop [listener-name]??關(guān)閉所有的監(jiān)聽(tīng)器,可以指定名字來(lái)關(guān)閉特定的監(jiān)聽(tīng)器
4叼风、$lsnrctl reload? 重啟監(jiān)聽(tīng)器取董,此命令可以代替lsnrctl stop,lsnrctl start
PL/SQL登錄如有報(bào)錯(cuò)信息:PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different,需修改注冊(cè)表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_Oracle_10g\NLS_LANG的對(duì)應(yīng)值
SIMPLIFIED CHINESE_CHINA.ZHS16GBK? 修改為:SIMPLIFIED CHINESE_CHINA.AL32UTF8即可无宿。
3. 聯(lián)機(jī)備份與恢復(fù)
RMAN命令的主要參數(shù)有:
●? ? target:后面跟目標(biāo)數(shù)據(jù)庫(kù)的連接字符串
●? ?catalog:后面跟恢復(fù)目錄
●? ?nocatalog:指定沒(méi)有恢復(fù)
要使用RMAN首先要將數(shù)據(jù)庫(kù)設(shè)置為歸檔日志(ARCHIVELOG)模式茵汰,具體設(shè)置步驟如下:
●? 以SYS用戶和SYSDBA身份登錄到SQL*PLUS:
SQL>CONNECT SYS/passwd@orcl AS SYSDBA;(SYSDBA代表一種權(quán)限;orcl代表實(shí)例名)
●? 以IMMEDIATE方式關(guān)閉數(shù)據(jù)庫(kù)孽鸡,同時(shí)也關(guān)閉了數(shù)據(jù)庫(kù)實(shí)例蹂午,然后以mount方式打開(kāi)數(shù)據(jù)庫(kù),此時(shí)并沒(méi)有打開(kāi)數(shù)據(jù)庫(kù)實(shí)例:
SQL>shutdown immediate
SQL>startup mount(如果報(bào)錯(cuò)監(jiān)聽(tīng)不到彬碱,在dos命令行輸入set ORACLE_SID=實(shí)例名豆胸,Linux下使用export Oracle_SID=實(shí)例名)
監(jiān)聽(tīng)報(bào)錯(cuò):https://blog.csdn.net/covey0306/article/details/51918877
●? 將數(shù)據(jù)庫(kù)從非歸檔日志模式(NOARCHIVELOG)切換到歸檔日志模式(ARCHIVELOG):
SQL>alter database archivelog;
alter system set log_archive_dest_1='location=c:\arch' scope=both;
●? 用語(yǔ)句查詢是否為歸檔日志模式(ARCHIVELOG/NOARCHIVELOG):
SQL>select dbid,name,log_mode,platform_name,open_mode from v$database;(archive log list;)
●? 創(chuàng)建恢復(fù)目錄所用的表空間巷疼,需要?jiǎng)?chuàng)建表空間存放與RMAN相關(guān)的數(shù)據(jù)晚胡,需要打開(kāi)數(shù)據(jù)庫(kù)實(shí)例,創(chuàng)建表空間:
SQL>alter database open; (用語(yǔ)句實(shí)例查看狀態(tài)select status from v$instance)
SQL>create tablespace rman_ts datafile 'E:\app\Administrator\oradata\orcl\rman_ts.dbf' size 200M; (datafile為dbf文件存放路徑嚼沿,需參考o(jì)racle安裝時(shí)所配置dbf文件存放的路徑)
●? 創(chuàng)建rman用戶估盘,默認(rèn)表空間rman_ts,臨時(shí)表空間temp:
SQL>create user rman identified by passwd default tablespace rman_ts temporary tablespace temp;
●? 給用戶授connect伏尼、recovery_catalog_owner和resource權(quán)限忿檩。(connect權(quán)限可以連接數(shù)據(jù)庫(kù)尉尾,創(chuàng)建表爆阶、視圖等數(shù)據(jù)庫(kù)對(duì)象;recovery_catalog_owner權(quán)限可以對(duì)恢復(fù)目錄進(jìn)行管理沙咏;resource權(quán)限可以創(chuàng)建表辨图、視圖等數(shù)據(jù)庫(kù)對(duì)象)
SQL>grant connect,recovery_catalog_owner,resource to rman;
●? 在rman目錄下運(yùn)行rman程序打開(kāi)恢復(fù)管理器(orcl代表實(shí)例名):
C:\app\Administrator\product\11.2.0\dbhome_1\BIN>rman target rman/passwsd@orcl
●備份全庫(kù)
RMAN>backup database plus archivelog delete input;(備份全庫(kù)及控制文件,服務(wù)器參數(shù)文件與所有歸檔的重做日志肢藐,刪除舊的歸檔日志)
●備份表空間
RMAN>backup tablespace system plus archivelog delete input;(備份表空間及歸檔的重做日志故河,刪除舊的歸檔日志)
●備份歸檔日志
RMAN>backup archivelog all delete input;
●全庫(kù)備份
RMAN>backup database;
●刪除日志文件(查看日志文件crosscheck archivelog all;)
rman>delete archivelog all;
RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7')刪除七天前的日志吆豹;
●查看備份具體信息
RMAN>list backupset;
●指定路徑備份(路徑不能指定在oracle數(shù)據(jù)存放盤鱼的,所以報(bào)錯(cuò)創(chuàng)建文件失斃砼琛;因?yàn)閭浞菸募写笮∠拗拼战祝詧?bào)錯(cuò)文件已存在)
RMAN>backup database format 'D:\Backup\data_%d_%s_%p.bak';(data_%U也可以)
●增量備份(level 10g之后分0和1,0為全備份猿规,1為增量備份;之前有分4級(jí))
RMAN>backup incremental level 1 database format 'D:\Backup\data_%U.bak';
●備份數(shù)據(jù)文件:
RMAN>Backup datafile 6 format ’D:\backup/%d_%T_%s’;(1,2,3,4,5,6,7代表數(shù)據(jù)文件的編號(hào)宙橱,可通過(guò)select file#,name from v$database來(lái)進(jìn)行查詢)
●備份歸檔日志:
RMAN>Backup archivelog all delete input format ‘D:\backup\%U.dbf’;
●備份控制文件:
RMAN>Backup current controlfile format ‘D:\backup\%d_%T_%s’;(current當(dāng)前的)
●備份spfile(參數(shù)文件):
RMAN>Backup spfile format=’ D:\backup\%d_%T_%s’
參考鏈接:https://blog.csdn.net/qq_36891027/article/details/81065976
●指定路徑還原姨俩,先還原控制文件再還原數(shù)據(jù)
RMAN>restore controlfile to 'E:\Oracle\oradata\orcl\CONTROL01.CTL' from 'D:\Backup\Data_Orcl_21_1.bak';(數(shù)據(jù)庫(kù)打開(kāi)的時(shí)候需要使用TO;如果備份文件有多個(gè)师郑,from后跟的文件是其中一個(gè))
當(dāng)無(wú)法恢復(fù)控制文件:報(bào)錯(cuò)活動(dòng)的控制文件环葵,切換到startup nomount狀態(tài);rman連接報(bào)錯(cuò)監(jiān)聽(tīng)無(wú)法連接宝冕,需修改/u01/app/base/product/11.2.0/db_1/network/admin/tnsnames.ora文件张遭,在對(duì)應(yīng)實(shí)例(SERVICE_NAME = test)下一行加(UR=A)來(lái)修復(fù)動(dòng)態(tài)注冊(cè)的監(jiān)聽(tīng)在數(shù)據(jù)庫(kù)nomount狀態(tài)下拒絕一切連接;
在nomount狀態(tài)下恢復(fù)控制文件后需要通過(guò)alter database mount語(yǔ)句修改數(shù)據(jù)庫(kù)狀態(tài)地梨,才能進(jìn)行數(shù)據(jù)的恢復(fù)帝璧,否則報(bào)錯(cuò)無(wú)法打開(kāi)指定的控制文件;
●再恢復(fù)數(shù)據(jù)RMAN>restore database;
●恢復(fù)介質(zhì):(alter database open)
recover datafile 'E:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF';
recover datafile 'E:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF';
recover datafile 'E:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF';
recover datafile 'E:\ORACLE\ORADATA\ORCL\USERS01.DBF';
recover datafile 'E:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF';
recover datafile 'E:\ORACLE\ORADATA\ORCL\IF_FILE';
recover datafile 'E:\ORACLE\ORADATA\ORCL\RMAN_TS.DBF';
https://www.cnblogs.com/biaopei/p/8418833.html
手動(dòng)歸檔日志:alter system switch logfile
https://www.cnblogs.com/hello-wei/p/10179313.html
oracle數(shù)據(jù)庫(kù)創(chuàng)建流程:
1. 安裝oracle湿刽,同時(shí)會(huì)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)的烁,如果需要再創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)使用DBCA方式開(kāi)啟圖形化界面創(chuàng)建數(shù)據(jù)庫(kù),創(chuàng)建完成后會(huì)提示端口號(hào)诈闺,端口不同代表的庫(kù)不同渴庆;
2. 通過(guò)https://192.168.1.10:1158/em訪問(wèn)(端口不同代表不同實(shí)例),SYS賬戶登錄SYSDBA雅镊,創(chuàng)建用戶(設(shè)置名稱口令即可)
3. 編輯用戶角色襟雷,授權(quán)CONNECT,DBA仁烹,RESOURCE權(quán)限耸弄,并勾選管理選項(xiàng)(connect連接權(quán)限,resource常用操作權(quán)限卓缰,dba最高權(quán)限):
4. 退出SYS賬戶计呈,選擇normal庫(kù)登錄剛創(chuàng)建的用戶,創(chuàng)建表空間(只填寫一般信息里面的名稱即可征唬,其他保持默認(rèn))并添加數(shù)據(jù)文件(輸入文件名捌显,存儲(chǔ)可默認(rèn)可勾選增量):
5. 用語(yǔ)句創(chuàng)建表和插入數(shù)據(jù):
CREATE TABLE it(ID NUMBER(4),NAME VARCHAR2(14),LOC VARCHAR2(13));
INSERT INTO it VALUES (10,'ACCOUNTING','NEW YORK');
查看數(shù)據(jù)庫(kù)名:select name from v$database
查看實(shí)例名:select instance_name from v$instance
Oracle登錄命令:sqlplus username/password@DB
創(chuàng)建用戶:create user username identified by password;
授權(quán):grant connect,resource,dba to username;(connect連接權(quán)限,resource常用操作權(quán)限总寒,dba最高權(quán)限)扶歪;
scott默認(rèn)是鎖定的,啟用用戶的語(yǔ)句:alter user scott account unlock摄闸;
查看用戶:select username from dba_users;
Oracle11g中有206個(gè)權(quán)限善镰,可以通過(guò)語(yǔ)句在數(shù)據(jù)字典中查詢,系統(tǒng)中有種ANY權(quán)限妹萨,可以在任意用戶模式下操作:
SQL>CONNECT sys /passwd AS sysdba
SQL>SELECT COUNT(*) FROM SYSTEM_PRIVILEGE_MAP;
備份恢復(fù)參考資料:
https://wenku.baidu.com/view/84b1d6687e21af45b307a8f2.html?sxts=1566798259184
用閃回區(qū)存放歸檔
rac1執(zhí)行
set ORACLE_SID=實(shí)例名
sqlplus / as sysdba
create pfile='d:/tmpbak.ora' from spfile;
alter system set db_recover_file_dest='+MGMT';
alter system set db_recovery_file_dest_size=200G scope=both;
alter system set cluster_database=false scope=spfile;
shutdown immediate
rac2執(zhí)行
set ORACLE_SID=實(shí)例名
sqlplus / as sysdba
shutdown immediate
rac1執(zhí)行
startup mount
alter database archivelog;
alter database flashback on;
alter system set cluster_database=true scope=spfile;
shutdown immediate
startup
rac2執(zhí)行
startup
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
不用閃回區(qū)存放歸檔
rac1執(zhí)行
set ORACLE_SID=實(shí)例名
sqlplus / as sysdba
create pfile='d:/tmpbak.ora' from spfile;
alter system set cluster_database=false scope=spfile;(cluster_database 是用來(lái)確定數(shù)據(jù)庫(kù)是否在rac環(huán)境的集群中的,如果cluster_database=true炫欺,那么對(duì)于rac 數(shù)據(jù)庫(kù)來(lái)說(shuō)眠副,無(wú)法在一個(gè)節(jié)點(diǎn)上mount exclusive數(shù)據(jù)庫(kù),也就無(wú)法更改archivelog模式竣稽。)
alter system set log_archive_dest_1='location=+MGMT/BDCYC' scope=both;
shutdown immediate
rac2執(zhí)行
set ORACLE_SID=實(shí)例名
sqlplus / as sysdba
shutdown immediate
rac1執(zhí)行
startup mount
alter database archivelog;
alter system set cluster_database=true scope=spfile;
shutdown immediate
startup
rac2執(zhí)行
startup
恢復(fù)指定時(shí)間點(diǎn)
set oracle_sid=實(shí)例名
sqlplus / as sysdba
SQL>shutdown immediate
SQL>startup nomount? (數(shù)據(jù)庫(kù)開(kāi)啟nomount狀態(tài)囱怕,恢復(fù)數(shù)據(jù)庫(kù);如果nomout狀態(tài)RMAN不能連接毫别,修改.../product/11.2.0/db_1/network/admin/tnsnames.ora文件娃弓,在對(duì)應(yīng)實(shí)例(SERVICE_NAME = test)下一行添加(UR=A))
rman target rman/passwd@實(shí)例名
RMAN>restore controlfile from ‘D:\Backup\....’;
RMAN>alter database mount
RMAN>restore database;
RMAN>sql 'alter session set nls_date_format="yyyymmdd hh24:mi:ss"';?? 因?yàn)樵趓man中執(zhí)行岛宦,所以需要sql ‘’;
RMAN>recover database until time '20190916 17:30:00'; 恢復(fù)到這個(gè)時(shí)間的數(shù)據(jù)台丛,執(zhí)行之后需要重新生成重做日志文件(如果恢復(fù)報(bào)錯(cuò)UNTIL TIME或RECOVER WINDOW在resetlogs之前,需用list incarnation查詢r(jià)esetlogsDB關(guān)鍵字砾肺;使用reset database incarnation to 3去設(shè)置到對(duì)應(yīng)的時(shí)間點(diǎn)前)
RMAN>sql 'alter database open resetlogs';
scn是指系統(tǒng)改變號(hào)挽霉,oracle數(shù)據(jù)庫(kù)使用它來(lái)記錄數(shù)據(jù)庫(kù)的過(guò)去時(shí)間內(nèi)的狀態(tài)和軌跡
conn /as sysdba
select to_char(scn_to_timestamp(963959),'YYYY-MM-DD HH24:MI:SS') from dual; ? ? ? 將scn轉(zhuǎn)換為時(shí)間
select * from (select time_dp,scn from smon_scn_time order by time_dp desc) where rownum<10; ?根據(jù)用戶刪除數(shù)據(jù)時(shí)間找出相應(yīng)的scn號(hào)
rman target/
startup mount;
restore database; 還原數(shù)據(jù)文件
recover database until scn 963915;
sql 'alter database open resetlogs'; 重新生成重做日志文件
查看當(dāng)前狀態(tài):select status from v$instance
清除SBT_TAPE記錄:
configure device type 'SBT_TAPE' clear;
configure default device type to disk变汪;
show parameter recover; 查看閃回
db_recovery_file_dest:指定閃回恢復(fù)區(qū)的位置
db_recovery_file_dest_size:指定閃回恢復(fù)區(qū)的可用空間大小
db_flashback_retention_target:指定數(shù)據(jù)庫(kù)可以回退的時(shí)間侠坎,單位為分鐘,默認(rèn)1440分鐘(1天),實(shí)際取決于閃回區(qū)大小
SQL> select flashback_on from v$database? 檢查是否開(kāi)啟閃回
select ts#,name from v$tablespace;?? 查看表空間
du -sh /u01/app/oracle/flash_recovery_area? 查看文件夾使用空間
select file#,status,ts#,name from v$datafile;? 查看數(shù)據(jù)庫(kù)邏輯文件
select * from v$logfile;? 查看日志路徑
查看一下配置文件/etc/resolv.conf裙盾,里面是否有nameserver
xxx.xxx.xxx.xxx实胸,比如使用dns服務(wù)器 nameserver
8.8.8.8,如果有番官,修改一個(gè)可用的dns服務(wù)器庐完,如8.8.8.8或者4.4.4.4,保存退出即可徘熔!
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo