ITPub博客

首页 > 数据库 > Oracle > 小麦苗的常用代码

小麦苗的常用代码

Oracle 作者:srvking 时间:2017-01-03 17:10:42 0 删除 编辑

点击(此处)折叠或打开

  1. ?
  2. ●
  3. ?
  4. ◆
  5. ※
  6. ☆
  7. ⊙




  8. ------GBK:
  9. =E6=B5=B7=E6=BB=A8 (=E5=8F ---> LHR (=E5=8F
  10. ------3DUTF-8:
  11. =E6=B5=B7=E6=BB=A8 (=E5=8F ---> =E5=B0=8F=E9=BA=A6=E8=8B=97 (=E5=8F


  12. ---小麦苗
  13. 3DUTF-8:=E5=B0=8F=E9=BA=A6=E8=8B=97
  14. 3DGBK: =D0=A1=C2=F3=C3=E7








  15. ----- editplus 替换空行: ^[ \t]*\n EDIT -> DELETE->DELETE BLANK LINES

  16. ----- editplus 替换以#开头的行,多次执行: ^#[^\n]*\n



  17. windows不支持的文件名:\ / : * ? " < > |

  18. \ 反斜杠、捺斜杠
  19. / 正斜杠、撇斜杠

  20.  制表符 chr(9)
  21.  换行符 chr(10)
  22.  回车符 chr(13)



  23. 1s=1000ms(毫秒)=1000000(微秒)




  24. -------------------------------常用日期

  25. 月份    全拼        简拼    示例
  26. 1    January        Jan    
  27. 2    February    Feb    
  28. 3    March        Mar    
  29. 4    April        Apr    
  30. 5    May        May    
  31. 6    June        Jun    
  32. 7    July        Jul    
  33. 8    August        Aug    
  34. 9    September    Sep    
  35. 10    October        Oct    Sat Aug 13 10:54:45 2016
  36. 11    November    Nov    Tue Nov 29 02:56:59 2016
  37. 12    December    Dec    Tue Dec 06 08:51:57 2016
  38.             
  39.             
  40.             
  41.             
  42.             
  43. 星期    全拼        简拼    示例
  44. 1    Monday        Mon    Mon Dec 05 01:04:18 2016
  45. 2    Tuesday        Tue    Tue Dec 01 16:21:37 2016
  46. 3    Wednesday    Web    
  47. 4    Thursday    Thu    Thu Dec 01 08:36:03 2016
  48. 5    Friday        Fri    Fri Dec 02 16:17:17 2016
  49. 6    Saturday    Sat    Sat Dec 10 14:13:34 2016
  50. 7    Sunday        Sun    






  51. ---------------------------BBED
  52. 1.1 我的编译代码
  53. ls -l $ORACLE_HOME/rdbms/lib/*sbbd*                                                                */
  54. ls -l $ORACLE_HOME/rdbms/mesg/bbed*                                                                */
  55. chown oracle:dba /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/*sbbd*     */
  56. chown oracle:dba /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/bbed*                                            */
  57.  
  58. --cd $ORACLE_HOME/rdbms/lib
  59. --make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
  60.  
  61. --make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
  62. make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed
  63.  
  64. 1.2 我的使用代码
  65. vi /home/oracle/file.txt
  66. set line 9999 pagesize 9999
  67. col name format a80
  68. select file#||' '||name||' '||bytes name from v$datafile;
  69.  
  70. vi /home/oracle/bbed.par
  71. blocksize=8192
  72. listfile=/home/oracle/file.txt
  73. mode=edit
  74.  
  75. bbed parfile=/home/oracle/bbed.par
  76. bbed PASSWORD=blockedit mode=edit blocksize=8192 listfile=/home/oracle/file.txt



  77. ---------secureCRT中vi 显示彩色
  78. [root@rhel6_lhr ~]# vi .bashrc
  79. alias vi='vim'

  80. [root@rhel6_lhr ~]# vi /etc/profile
  81. export TERM=xterm-color



  82. secureCRT 中删除用 shift+delete 键或 ctrl + backspace 键

  83. ctrl+? 清理当前行命令

  84. ---------------------------- root 配置
  85. -------------- AIX
  86. chmod +w /etc/profile
  87. echo "
  88. umask 022
  89. export ORACLE_HOME=/u01/app/11.2.0/grid
  90. export PATH="\$PATH:\$ORACLE_HOME/bin"
  91. export PS1='[\$LOGNAME@'\`hostname\`:'\$PWD'']# '
  92. set -o vi
  93. alias l=\""ls -l\""
  94. alias ll=\""ls -l\""
  95. " >> /etc/profile
  96. . /etc/profile

  97. echo "
  98. umask 022
  99. export ORACLE_HOME=/u01/app/11.2.0/grid
  100. export PATH="\$PATH:\$ORACLE_HOME/bin"
  101. export PS1='[\$LOGNAME@'\`hostname\`:'\$PWD'']# '
  102. set -o vi
  103. alias l=\""ls -l\""
  104. alias ll=\""ls -l\""
  105. " >> ~/.profile
  106. . ~/.profile


  107. -------------- Linux
  108. chmod +w /etc/profile
  109. echo "
  110. umask 022
  111. export ORACLE_HOME=/u01/app/11.2.0/grid
  112. export PATH="\$PATH:\$ORACLE_HOME/bin"
  113. export PS1='[\$LOGNAME@'\`hostname\`:'\$PWD'']# '
  114. export TERM=xterm-color
  115. set -o vi
  116. alias l=\""ls -l\""
  117. alias ll=\""ls -l\""
  118. " >> /etc/profile
  119. . /etc/profile

  120. echo "
  121. umask 022
  122. export ORACLE_HOME=/u01/app/11.2.0/grid
  123. export PATH="\$PATH:\$ORACLE_HOME/bin"
  124. export PS1='[\$LOGNAME@'\`hostname\`:'\$PWD'']# '
  125. set -o vi
  126. alias l=\""ls -l\""
  127. alias ll=\""ls -l\""
  128. " >> ~/.bash_profile
  129. . ~/.bash_profile



  130. --export PS1="[\u@\h \W]\$ "
  131. --export PS1='[$LOGNAME@'`hostname`:'$PWD'']# '
  132. echo "export PS1='[\$LOGNAME@'\`hostname\`:'\$PWD'']# '" > /etc/profile
  133. export PS1='[$LOGNAME@'`hostname`:'$PWD'']# '



  134. -------------------------------------------------------------------------------- linux


  135. export HISTTIMEFORMAT='%F %T '
  136. export HISTSIZE=100000
  137. export HISTFILESIZE=100000


  138.  Ctrl+R 搜索命令历史 ,当找到命令后,通常再按回车键就可以执行该命令。如果想对找到的命令进行调整后再执行,则可以按一下左或右方向键。







  139. ------------------------------------------------------------------------------------------------- cmd 命令

  140. mstsc 远程桌面
  141. firewall.cpl 和 wf.msc 防火墙设置
  142. services.msc 服务
  143. cmd
  144. msconfig 开启启动项


  145. dxdiag Direct11




  146. ----开启远程桌面
  147. 1、计算机——右键——属性——远程设置——远程,选中“允许允许任意版本远程桌面的计算机连接”
  148. 2、关闭防火墙
  149.    netsh firewall set opmode disable
  150.    netsh advfirewall set publicprofile state off

  151. 3、services.msc 打开服务,然后 找到 Remote Desktop 相关的三个服务,确保状态为“已启动”




  152. C:\Users\华荣>set /a a=8500*12
  153. 102000
  154. C:\Users\华荣>



  155. 电脑设置豆沙绿: 窗口、活动窗口标题2
  156. 色度,饱和度,亮度:85 123 205 80 100 200 100 120 200 76 91 205
  157. RGB:207,232,204

  158. cmd界面:0,128,128
  159. 代码背景:141,179,226


  160. ------- cmd 界面字体和界面背景颜色
  161. 背景颜色: 0 128 128
  162. HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe 修改%SystemRoot%_system32_cmd.exe下,若无该项可以修改HKEY_CURRENT_USER\Console下,将DWORD类型的CodePage项修改为十进制值936,将字符串类型的FaceName改为Lucida Console ,若没有该项则可以新建该项


  163. chcp 437

  164. cmd 界面按下F7显示历史命令


  165. ----cmd 下不换行
  166. host set /p=start...数据库巡检服务概要. <nul
  167. host set /p=. <nul
  168. host echo ..end




  169. ----- 锁屏 windows + L 键
  170.  
  171. ----------系统环境变量

  172. Windows Registry Editor Version 5.00

  173. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
  174. "NLS_DATE_FORMAT" "YYYY-MM-DD HH24:mi:ss"
  175. "NLS_LANG AMERICAN_CHINA.ZHS16GBK
  176. "ORACLE10G D:\Program files\app\oracle\product\10.2.0\db_1
  177. "ORACLE11G D:\Program files\app\oracle\product\11.2.0.1\dbhome_1
  178. "ORACLE8I D:\Program files\app\oracle\product\ora8i
  179. "ORACLE9I D:\Program files\app\oracle\product\ora92
  180. "ORACLE_HOME D:\Program files\app\oracle\product\11.2.0.1\dbhome_1
  181. "TNS_ADMIN D:\Program files\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN

  182. ----------用户环境变量
  183. Windows Registry Editor Version 5.00

  184. [HKEY_CURRENT_USER\Environment]
  185. "NLS_DATE_FORMAT"="YYYY-MM-DD HH24:MI:SS"
  186. "NLS_LANG"="AMERICAN_CHINA.ZHS16GBK"



  187. ---------cmd下设置用户环境变量
  188. SETX "NLS_DATE_FORMAT" "YYYY-MM-DD HH24:MI:SS"
  189. SETX "NLS_LANG" "AMERICAN_CHINA.ZHS16GBK"
  190. SETX "ORACLE_HOME" "D:\Program files\app\oracle\product\11.2.0.1\dbhome_1"
  191. SETX "TNS_ADMIN" "D:\Program files\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN"
  192. SETX "PATH" "%ORACLE_HOME%\bin"
  193. SETX "VBOX_MSI_INSTALL_PATH" "D:\Program Files\Oracle\VirtualBox"

  194. SETX "ORACLE_HOME" "%cd%\oracle\product\11.2.0.1\dbhome_1"



  195. SETX "ORACLE_HOME" "D:\Program files\app\oracle\product\11.2.0.1\dbhome_1"
  196. SETX "TNS_ADMIN" "%%ORACLE_HOME%%\network\admin"
  197. SETX "PATH" "%path%;%%ORACLE_HOME%%\bin"
  198. SETX "NLS_DATE_FORMAT" "YYYY-MM-DD HH24:MI:SS"
  199. SETX "NLS_LANG" "AMERICAN_CHINA.ZHS16GBK"




  200. alter session set nls_language='SIMPLIFIED CHINESE';
  201. alter system set nls_language='AMERICAN' scope=spfile;

  202. export EDITOR=vi
  203. export ORACLE_SID=orclasm
  204. export ORACLE_BASE=/u01/app/oracle
  205. export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
  206. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
  207. export ORACLE_ALERT=$ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace
  208. export PATH=$ORACLE_HOME/bin:$PATH
  209. export TNS_ADMIN=$ORACLE_HOME/network/admin
  210. export ORACLE_PATH=.:$ORACLE_BASE/dba_scripts/sql:$ORACLE_HOME/rdbms/admin
  211. umask 022

  212. #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"    SELECT userenv('LANGUAGE') db_NLS_LANG FROM DUAL;
  213. #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
  214. export SQLPATH=$ORACLE_HOME/sqlplus/admin
  215. export NLS_DATE_FORMAT='YYYY-MM-DD HH24:mi:ss';

  216. #alias sqlplus='rlwrap sqlplus'
  217. #alias rman='rlwrap rman'
  218. #alias asmcmd='rlwrap asmcmd'
  219. alias alert_log='tail -200f $ORACLE_ALERT/alert_$ORACLE_SID.log'
  220. alias alert_xml='tail -200f $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/alert/log.xml'
  221. alias alert_listener='tail -200f $ORACLE_BASE/diag/tnslsnr/rhel6/listener/trace/listener.log'


  222.  




  223. ----- 如何启用 Administrator(xp、windows7)
  224. net user Administrator /active:yes
  225. 单击“开始→运行”,输入regedit后回车,打开注册表编辑器,依次展开 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" 分支
  226. 将右边的Administrator的值改为1,即可让Administrator账户出现在登录的欢迎屏幕上。(如果没有Administrator的话就创建一个DWORD(32位)值类型,其它上级项目没有的话也依次创建)

  227. ----- 在PE中修改源系统的注册表

  228. 启动注册表编辑器,点击HKEY_LOCAL_MACHINE,然后点【文件】-【加载配置单元】,浏览文件,进入 Win7安装的分区 " c:\Windows\System32\config" 里面的SYSTEM、DEFAULT、SOFTWARE都可以选择,选择后让你输入名称,随便输入,如byiu输入后点确定就会在HKEY_LOCAL_MACHINE下面增加那个分支,然后就可以编辑了。



  229. ---新建administrator
  230. 点开HKEY_LOCAL_MACHINE,点开SAM,右击SAM,点击权限..在组或用户名称下点选 Administrators,点选完全控制对应的允许复选框,点击确定
  231. 在注册表编辑器窗口按F5刷新。点开:"HKEY_LOCAL_MAICHINE\SAM\SAM\Domains\Account\Users\Names"
  232. 导入如下注册表,即Administrator用户:
  233. Windows Registry Editor Version 5.00

  234. [HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\Administrator]
  235. @=hex(1f4):


  236. ----------------禁用U盘 启用U盘
  237. ----- 启用usb大容量存储设备 默认设置为“3”表示手动,“2”是表示自动,“4”是表示停用,一般设置为3

  238. --禁用
  239. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR" /v Start /d 4 /t reg_dword /f

  240. --启用
  241. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR" /v Start /d 3 /t reg_dword /f


  242. ---------------------- 查看网站是否通

  243. telnet 192.168.59.130 1158

  244. ---怎样从DOS/Linux的telnet中退出

  245. 我们经常要用到telnet来测试FTP端口,但是有一个问题估计大家都会遇到,在telnet进入某个端口后无法退出,没办法,为了继续测试只好关掉这个dos窗口,重新打开一个。 这里教给你一个方法,按住ctrl+]就可以退出到

  246.  
  247. Welcome to Microsoft Telnet Client
  248. Escape Character is 'CTRL+]'
  249. Microsoft Telnet>
  250. 然后再输入quit就可以完全退出了。





  251. unzip /media/linux.x64_11gR2_/linux.x64_11gR2_database_1of2.zip -d /tmp && unzip /media/linux.x64_11gR2_/linux.x64_11gR2_database_2of2.zip -d /tmp > /dev/null 2>&1
  252. unzip p10404530_112030_Linux-x86-64_1of7.zip -d /tmp && unzip p10404530_112030_Linux-x86-64_2of7.zip -d /tmp && unzip p10404530_112030_Linux-x86-64_3of7.zip -d /tmp > /dev/null 2>&1

  253. mysql -u root -p



  254. ----------------------------- 科学计数法
  255.  12345678901,结果为 1.23E+10,即 1.23 乘以 10 的 10 次幂
  256.  12300000000



  257.  4.1E+11
  258.  410 000 000 000



  259. ----------------------------------------- crontab
  260. 每天0点02分 2 0 * * * /home/weblogic/lhr/ods_scripts/new_ods2/main_ods_entity_de_lhr.sh
  261. 每天凌晨1点3分    3 1 * * * /home/weblogic/bin/crm_address_intf_1.sh
  262. 每周日18点    0 18 * * 0 /home/weblogic/lhr/ods_scripts/new_ods2/main_weekly.sh
  263. 每周三18点    0 18 * * 3 /home/weblogic/bin/crm_inf_linkresource_monthly.sh
  264.             

  265. --root用户可以查看其它用户的crontab
  266. crontab -u zhangsan -l
  267. crontab -u lisi -l
  268. crontab -u wangwu -l




  269. nohup sh rman_backup_full.sh 2>&1 &




  270. MYDATE=`date +'%Y-%m-%d %H:%M:%S'`


  271. sqlplus lhr/lhr@192.168.128.134:1521/orclasm.lhr.com
  272. tnsping 192.168.0.123:1521/dev.us.oracle.com

  273. drop user lhr cascade;

  274. NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"
  275. NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
  276. NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
  277. NLS_LANG=AMERICAN_AMERICA.UTF8

  278. alias alert_log='tail -200f $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/alert_$ORACLE_SID.log'



  279. drop tablespace temp including contents and datafiles;
  280. ALTER TABLESPACE temp DROP TEMPFILE '/u01/app/oracle/oradata/orcl/orclasm/tempfile/temp.264.850260283';
  281. ALTER TABLESPACE temp ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp02.dbf' SIZE 20M;


  282. --表空间大小:
  283. set pagesize 9999 line 9999
  284. col TS_Name format a30
  285. WITH wt1 AS
  286.  (SELECT ts.TABLESPACE_NAME,
  287.          df.all_bytes,
  288.          decode(df.TYPE,
  289.                 'D',
  290.                 nvl(fs.FREESIZ, 0),
  291.                 'T',
  292.                 df.all_bytes - nvl(fs.FREESIZ, 0)) FREESIZ,
  293.          df.MAXSIZ,
  294.          ts.BLOCK_SIZE,
  295.          ts.LOGGING,
  296.          ts.FORCE_LOGGING,
  297.          ts.CONTENTS,
  298.          ts.EXTENT_MANAGEMENT,
  299.          ts.SEGMENT_SPACE_MANAGEMENT,
  300.          ts.RETENTION,
  301.          ts.DEF_TAB_COMPRESSION,
  302.          df.ts_df_count
  303.   FROM dba_tablespaces ts,
  304.          (SELECT 'D' TYPE,
  305.                  TABLESPACE_NAME,
  306.                  COUNT(*) ts_df_count,
  307.                  SUM(BYTES) all_bytes,
  308.                  SUM(decode(MAXBYTES, 0, BYTES, MAXBYTES)) MAXSIZ
  309.           FROM dba_data_files d
  310.           GROUP BY TABLESPACE_NAME
  311.           UNION ALL
  312.           SELECT 'T',
  313.                  TABLESPACE_NAME,
  314.                  COUNT(*) ts_df_count,
  315.                  SUM(BYTES) all_bytes,
  316.                  SUM(decode(MAXBYTES, 0, BYTES, MAXBYTES))
  317.           FROM dba_temp_files d
  318.           GROUP BY TABLESPACE_NAME) df,
  319.          (SELECT TABLESPACE_NAME,
  320.                  SUM(BYTES) FREESIZ
  321.           FROM dba_free_space
  322.           GROUP BY TABLESPACE_NAME
  323.           UNION ALL
  324.           SELECT tablespace_name,
  325.                  SUM(d.BLOCK_SIZE * a.BLOCKS) bytes
  326.           FROM gv$sort_usage a,
  327.                  dba_tablespaces d
  328.           WHERE a.tablespace = d.tablespace_name
  329.           GROUP BY tablespace_name) fs
  330.   WHERE ts.TABLESPACE_NAME = df.TABLESPACE_NAME
  331.   AND ts.TABLESPACE_NAME = fs.TABLESPACE_NAME(+))
  332. SELECT (SELECT A.TS#
  333.         FROM V$TABLESPACE A
  334.         WHERE A.NAME = UPPER(t.TABLESPACE_NAME)) TS#,
  335.        t.TABLESPACE_NAME TS_Name,
  336.        round(t.all_bytes / 1024 / 1024) ts_size_M,
  337.        round(t.freesiz / 1024 / 1024) Free_Size_M,
  338.        round((t.all_bytes - t.FREESIZ) / 1024 / 1024) Used_Size_M,
  339.        round((t.all_bytes - t.FREESIZ) * 100 / t.all_bytes, 3) Used_per,
  340.        round(MAXSIZ / 1024 / 1024/1024, 3) MAX_Size_g,
  341.        round(decode(MAXSIZ, 0, to_number(NULL), (t.all_bytes - FREESIZ)) * 100 /
  342.              MAXSIZ,
  343.              3) USED_per_MAX,
  344.        round(t.BLOCK_SIZE) BLOCK_SIZE,
  345.        t.LOGGING,
  346.        t.ts_df_count
  347. FROM wt1 t
  348. UNION ALL
  349. SELECT to_number('') TS#,
  350.        'ALL TS:' TS_Name,
  351.        round(SUM(t.all_bytes) / 1024 / 1024, 3) ts_size_M,
  352.        round(SUM(t.freesiz) / 1024 / 1024) Free_Size_m,
  353.        round(SUM(t.all_bytes - t.FREESIZ) / 1024 / 1024) Used_Size_M,
  354.        round(SUM(t.all_bytes - t.FREESIZ) * 100 / SUM(t.all_bytes), 3) Used_per,
  355.        round(SUM(MAXSIZ) / 1024 / 1024/1024) MAX_Size,
  356.        to_number('') "USED,% of MAX Size",
  357.        to_number('') BLOCK_SIZE,
  358.        '' LOGGING,
  359.        to_number('') ts_df_count
  360. FROM wt1 t
  361. order by TS#
  362. ;


  363. WITH wt1 AS
  364.  (SELECT df.TABLESPACE_NAME,
  365.          df.all_bytes,
  366.          df.MAXSIZ,
  367.          nvl(fs.FREESIZ, 0) FREESIZ
  368.     FROM (SELECT TABLESPACE_NAME,
  369.                  SUM(BYTES) all_bytes,
  370.                  SUM(decode(MAXBYTES, 0, BYTES, MAXBYTES)) MAXSIZ
  371.             FROM dba_data_files d
  372.            GROUP BY TABLESPACE_NAME) df,
  373.          (SELECT TABLESPACE_NAME, SUM(BYTES) FREESIZ
  374.             FROM dba_free_space
  375.            GROUP BY TABLESPACE_NAME) fs
  376.    WHERE fs.TABLESPACE_NAME(+) = df.TABLESPACE_NAME)
  377. SELECT t.TABLESPACE_NAME TS_Name,
  378.        round(t.all_bytes / 1024 / 1024, 2) ts_size_m,
  379.        round(t.freesiz / 1024 / 1024, 2) Free_Size_m,
  380.        round((t.all_bytes - t.FREESIZ) / 1024 / 1024, 2) Used_Size_m,
  381.        round(MAXSIZ / 1024 / 1024 / 1024, 2) MAX_Size_g,
  382.        round((MAXSIZ - (t.all_bytes - t.FREESIZ)) / 1024 / 1024 / 1024, 2) MAX_Size_free_g,
  383.        (t.all_bytes) ts_size,
  384.        (t.freesiz) Free_Size,
  385.        (t.all_bytes - t.FREESIZ) Used_Size,
  386.        (MAXSIZ) MAX_Size,
  387.        ((MAXSIZ - (t.all_bytes - t.FREESIZ))) MAX_Size_free
  388.   FROM wt1 t;





  389. ------ 数据文件情况
  390. SELECT d.FILE_ID,
  391.        d.TABLESPACE_NAME,
  392.        (SELECT round(SUM(nb.BYTES) / 1024 / 1024, 2)
  393.           FROM dba_data_files nb
  394.          WHERE nb.TABLESPACE_NAME = d.TABLESPACE_NAME) ts_size_m,
  395.        d.FILE_NAME,
  396.        round(d.BYTES / 1024 / 1024, 2) file_size_m,
  397.        round(d.MAXBYTES / 1024 / 1024 / 1024, 2) file_max_size_G,
  398.        d.AUTOEXTENSIBLE,
  399.        round(d.INCREMENT_BY * 8 * 1024 / 1024 / 1024, 2) INCREMENT_m,
  400.        round(d.BYTES * 100 / decode(d.MAXBYTES, 0, BYTES, d.MAXBYTES), 2) autoextend_ratio,
  401.        (SELECT b.CREATION_TIME
  402.           FROM sys.v_$datafile b
  403.          where b.FILE# = d.FILE_ID) CREATION_TIME,
  404.      d.INCREMENT_BY INCREMENT_BY_block,
  405.        d.BYTES,
  406.        d.blocks,
  407.        d.MAXBYTES,
  408.        d.MAXBLOCKS,
  409.        d.USER_BYTES,
  410.        d.USER_BLOCKS
  411.   FROM dba_data_files d
  412. UNION ALL
  413. SELECT d.FILE_ID,
  414.        d.TABLESPACE_NAME,
  415.        (SELECT round(SUM(nb.BYTES) / 1024 / 1024, 2)
  416.           FROM v$tempfile nb
  417.          WHERE nb.name = d.FILE_NAME) ts_size,
  418.        d.FILE_NAME,
  419.        round(d.BYTES / 1024 / 1024, 2) file_size_m,
  420.        round(d.MAXBYTES / 1024 / 1024 / 1024, 2) file_max_size_G,
  421.        d.AUTOEXTENSIBLE,
  422.        round(d.INCREMENT_BY * 8 * 1024 / 1024 / 1024, 2) INCREMENT_m,
  423.        round(d.BYTES * 100 / decode(d.MAXBYTES, 0, BYTES, d.MAXBYTES), 2) autoextend_ratio,
  424.        (SELECT b.CREATION_TIME
  425.           FROM sys.v_$datafile b
  426.          where b.FILE# = d.FILE_ID) CREATION_TIME,
  427.      d.INCREMENT_BY INCREMENT_BY_block,
  428.        d.BYTES,
  429.        d.blocks,
  430.        d.MAXBYTES,
  431.        d.MAXBLOCKS,
  432.        d.USER_BYTES,
  433.        d.USER_BLOCKS
  434.   FROM dba_temp_files d
  435.  ORDER BY TABLESPACE_NAME, file_id;



  436. -----查看字符集
  437. select SYS_CONTEXT('USERENV', 'LANGUAGE') from dual;
  438. select userenv('language') from dual;
  439. select * from v$nls_parameters;


  440. ---密码文件 linux区分$ORACLE_SID大小写 sysdba select* from v$pwfile_users;
  441. --linux:orapw+$ORACLE_SID
  442. --windows: pwd+$ORACLE_SID.ora
  443. oradim -NEW -sid orcl9i -INTPWD admin -pfile d:\oracle\ora90\database\initstorm.ora;
  444. C:\Users\Administrator> orapwd file="E:\oracle\ora8i\DATABASE\PWDortest.ORA" password=lhr
  445. [oracle@robinson dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle force=y

  446. sc delete OracleOraDb11g_home1TNSListener
  447. sc create OracleOraDb11g_home1TNSListener binpath= "F:\app\oracle\product\BIN\TNSLSNR" start= auto displayname= "OracleOraDb11g_home1TNSListener"


  448. --11g中密码大小写敏感
  449. (1) sec_case_sensitive_logon参数可以指定用户的口令是否区分大小写,默认为true,表示区分大小写
  450. (2) 口令文件中的ignorecase 参数仅仅针对创建时是否区分大小写,简言之,只能针对SYS用户,默认为N,表示不忽略大小写,即区分大小写


  451. --通过设置EVENTS 28401可以屏蔽密码延迟验证:
  452. SQL> ALTER SYSTEM SET EVENT = '28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE = SPFILE;
  453. 设置该事件后重启数据库即可。




  454. ------------------------------------------------ selinux

  455. 查看SELinux状态:
  456. 1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态
  457. SELinux status:                 enabled
  458. 2、getenforce                 ##也可以用这个命令检查
  459. 关闭SELinux:
  460. 1、临时关闭(不用重启机器):
  461. setenforce 0                  ##设置SELinux 成为permissive模式
  462.                               ##setenforce 1 设置SELinux 成为enforcing模式
  463. 2、修改配置文件需要重启机器:
  464. 修改/etc/selinux/config 文件
  465. 将SELINUX=enforcing改为SELINUX=disabled
  466. 重启机器即可



  467. ------------------------------------------------------------ linux
  468. 存储区域网络(Storage Area Network,SAN)

  469. ----设置密码永不过期:
  470. chage -M -1 oracle
  471. chage -l oracle







  472. lsb_release-a
  473. cat /etc/issue
  474. uname -a
  475. cat /proc/version

  476. ---linux位数查看
  477. file /bin/ls
  478. getconf LONG_BIT
  479. arch

  480. ---AIX系统查看
  481.   
  482.   显示AIX系统内核是32位还是64位:

  483.   bootinfo -K

  484.   显示机器硬件是32位还是64位:

  485.   bootinfo -y

  486.  --- SUN:

  487.   $isainfo -bv

  488.   64表示内核是64位的,32表示内核是32位的

  489.  --- HPUX:

  490.   >getconf KERNEL_BITS

  491.   64表示内核是64位的,32表示内核是32位的

  492.   HPUX:

  493.   >getconf KERNEL_BITS

  494.   64表示内核是64位的,32表示内核是32位的



  495. ------------------ AIX系统用户解锁
  496. 3.1 AIX用户账户锁定与解锁最佳方法
  497. 3004-303 There have been too many unsuccessful login attempts; please see
  498.         the system administrator.

  499. 与之相关的配置参数是/etc/security/login.cfg的以下配置项

  500. logindisable=7              *7次失败登录后锁定端口
  501. logininterval=120            *在120秒内7次失败登录才锁定端口

  502. 1、如果你可以登陆到ROOT账户,比较简单
  503. 使用chsec命令即可解锁,具体如下:
  504. # chsec -f  /etc/security/lastlog -a unsuccessful_login_count=0 -s  username
  505. 通过重置未成功登陆的次数即可解锁

  506. 2、如果是通过设置来锁定的用户,可以这样解锁
  507. #【smitty user】-->【Lock / Unlock a User's Account】
  508. 或是
  509. # chsec -f  /etc/security/lastlog -a unsuccessful_login_count=0 -s  username

  510. 3、命令解锁
  511. # chuser account_locked=TRUE username  给用户加锁
  512. # chuser accout_locked=FALSE username   给用户解锁



  513. ------------大写G跳到最后一行,o新插入一行
  514. AIX开启自动补全:
  515. 方法一:
  516. set -o vi
  517.   自动补全 esc \
  518.   历史命令 esc -
  519. HJKL
  520. 左下上右

  521. A 跳到行末,进入编辑模式
  522. I 跳到行首,进入编辑模式
  523. X 键删除光标前一个字符停留在原来的那个字符

  524. AIX开启自动补全:
  525. 方法一:
  526. set -o vi
  527.   自动补全 esc \
  528.   历史命令 esc -
  529.      esc j
  530.      esc k
  531. i a x 编辑
  532. 光标移动 : h l
  533. HJKL
  534. 左下上右

  535. A 跳到行末,进入编辑模式
  536. I 跳到行首,进入编辑模式
  537. X 键删除光标前一个字符停留在原来的那个字符




  538. 方法二:
  539. set -o emacs
  540.    自动补全 按两次esc
  541.     历史命令 ctrl-n 或 ctrl-p





  542. more /etc/profile
  543. more /etc/environment
  544. export TMOUT=0;


  545. oslevel -qs



  546. ---清磁盘头
  547. dd if=/dev/zero of=/dev/rhdisk5 bs=1024 count=1024



  548. ##查看PV大小,单位M AIX 查询磁盘大小 硬盘大小
  549. for HDISK in `lspv | grep -v hdisk0 | awk '{print $1}'`;do
  550.     bootinfo -s $HDISK
  551. done
  552. for diskname in `lspv|grep -i none|cut -f "1" -d ' '`
  553. do
  554.  echo "/dev/r$diskname" `getconf DISK_SIZE /dev/r$diskname`
  555. done





  556. ---进程句柄

  557. lsof -p pid

  558. ---告警日志位置
  559. lsof | grep diag
  560. lsof | grep bdump


  561. show parameter background_dump_dest
  562. $ORACLE_BASE/ADMIN/SID/BDUMP/ALERTSID.LOG

  563. --根据实际情况决定是否加upper函数
  564. SELECT VALUE || substr(d.VALUE, -6, 1) || 'alert_' || b.INSTANCE_Name ||'.log' alertname
  565.    FROM v$parameter d, v$instance b
  566.   WHERE d.NAME = 'background_dump_dest';




  567. --1 端口是否占用
  568. netstat -apn | grep 1521
  569. netstat -ano|grep 1521
  570. netstat -lnp|grep 1521

  571. ----检查包忽略大小写
  572. rpm -qa | grep -i AAA

  573. --2 杀死所有进程
  574. kill -9 `ps -ef|grep orcl| grep -v grep | awk '{print $2}'`

  575. ps -ef |grep $ORACLE_SID|grep -v grep|awk '{print $2}' | xargs kill -9
  576. ipcs -m | grep oracle | awk '{print $2}' | xargs ipcrm shm




  577. --进程总数
  578. ps -ef|grep orcl| wc -l

  579. ---统计行数
  580. wc - lcw a.txt

  581.  - c 统计字节数。

  582.   - l 统计行数。

  583.   - w 统计字数。


  584. -- 匹配多个进程号
  585. [root@node1 node1]# ps -ef | grep ' 27373 \| 27182 '
  586. oracle 27182 1 0 14:50 ? 00:00:00 ora_pz99_jmrac1
  587. oracle 27373 1 0 14:53 ? 00:00:00 ora_w000_jmrac1
  588. root 27574 9150 0 14:56 pts/1 00:00:00 grep 27373 \| 27182
  589. [oracle@orcltest shm]$ ps -ef | egrep '(12545|12543)' |grep -v grep
  590. oracle 12543 1 0 07:41 ? 00:00:02 ora_pmon_ogg1
  591. oracle 12545 1 0 07:41 ? 00:00:04 ora_psp0_ogg1
  592. [oracle@orcltest shm]$



  593. -- 匹配多个字符串
  594. [root@node1 node1]# ps -ef | grep -v grep | grep -E "ohasd.bin|crs|ocssd|evmd|oproc"
  595. root 2372 1 0 09:33 ? 00:00:25 /u01/grid/bin/crsd.bin reboot
  596. root 5051 1 0 05:36 ? 00:01:02 /u01/grid/bin/ohasd.bin reboot
  597. grid 5313 1 0 05:37 ? 00:01:45 /u01/grid/bin/ocssd.bin
  598. grid 5500 1 0 05:37 ? 00:00:13 /u01/grid/bin/evmd.bin
  599. [root@node1 node1]#


  600. --3 关闭防火墙
  601. chkconfig iptables off ---永久
  602. service iptables stop ---临时
  603. chkconfig iptables --list
  604. /etc/init.d/iptables status ----会得到一系列信息,说明防火墙开着。
  605. /etc/rc.d/init.d/iptables stop ----------关闭防火墙
  606. setup ----------图形界面

  607. --将/etc/sysconfig/iptables文件新增一行,表示允许1521端口访问:
  608. [root@dcsopen2Node sysconfig]# vi /etc/sysconfig/iptables
  609.  # Firewall configuration written by system-config-firewall
  610.  # Manual customization of this file is not recommended.
  611.  *filter
  612.  :INPUT ACCEPT [0:0]
  613.  :FORWARD ACCEPT [0:0]
  614.  :OUTPUT ACCEPT [0:0]
  615.  -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  616.  -A INPUT -p icmp -j ACCEPT
  617.  -A INPUT -i lo -j ACCEPT
  618.  -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  619.  -A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
  620.  -A INPUT -j REJECT --reject-with icmp-host-prohibited
  621.  -A FORWARD -j REJECT --reject-with icmp-host-prohibited
  622.  COMMIT



  623. find / -type f -size +10000000c -exec du -sh {} \; 查找大于10M的文件
  624. find . -name '*.phtml' -type f -mmin -30 查找当前目录下.phtml文件中,最近30分钟内修改过的文件。
  625. find . -name '*.phtml' -type f -mmin -30 -ls 查找当前目录下.phtml文件中,最近30分钟内修改过的文件,的详细情况。
  626. find . -type f -mtime -1 查找当前目录下,最近1天内修改过的常规文件
  627. find . -type f -mtime +1 查找当前目录下,最近1天前(2天内)修改过的常规文件。

  628. find . -ctime +3 -exec rm -rf {} \; #删除一个目录下几天前的文件和目录

  629. find / -type f -size +10000000c -exec du -sh {} \; 2>/dev/null #查找大于10M的文件并列出文件大小
  630. find /home -size +10k #意思是说查找/home目录下大小为10k的文件

  631. find . -type f -mtime 0
  632. find . -type f -mtime +1
  633. find . -name '*.doc' -mtime 0

  634. find / -name access_log 2>/dev/null
  635. find . -name '*.doc' 2>/dev/null


  636. find / -amin -10 # 查找在系统中最后10分钟访问的文件
  637. find / -atime -2 # 查找在系统中最后48小时访问的文件

  638. find /tmp -size +10000000c -and -mtime +2
  639. find /tmp -size +10000000c -or -mtime +2

  640. find / -empty # 查找在系统中为空的文件或者文件夹
  641. find / -group cat # 查找在系统中属于 groupcat的文件
  642. find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
  643. find / -mtime -1 #查找在系统中最后24小时里修改过的文件
  644. find / -nouser #查找在系统中属于作废用户的文件
  645. find / -user fred #查找在系统中属于FRED这个用户的文件


  646. find . -type f -mtime 0 -exec ls -lrt {} \; --查看当天修改过的文件


  647. find . -type f -mtime 0 #最近24小时内修改过的文件
  648. find . -type f -mtime 1 #前48~24小时内修改过的文件,而不是48小时以内修改过的文件
  649. ---近3天内修改过的文件
  650. find . -type f -mtime 0 -o -mtime 1 -o -mtime 2
  651. find . -type f -mtime 0 -or -mtime 1 -or -mtime 2













  652. 目录大小: du -h --max-depth=1 . 2>&1
  653.            du -h --max-depth=0 /tmp/database/
  654.      du -sh database/
  655.      find . -ctime +3 -exec rm -rf {} \; 删除一个目录下几天前的文件和目录
  656. find / -type f -size +10000000c -exec du -sh {} \; 查找大于10M的文件
  657. du -s /*|sort -rn 查看目录大小


  658. /**/

  659. -------- AIX文件夹大小
  660. du -sg app/11.2.0/grid/* | sort -rn                                /* */
  661. du -ag app/11.2.0/grid/* | sort -rn                                /* */
  662. du -g /oracle/app/11.2.0/* | sort -rn | more                                 /* */




  663. 系统启动时间:
  664. date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"




  665. create public database link dblink_ogg1
  666. connect to lhr identified by lhr
  667.  using '(DESCRIPTION =
  668.    (ADDRESS_LIST =
  669.    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.129)(PORT = 1521))
  670.    )
  671.    (CONNECT_DATA =
  672.            (SERVICE_NAME = ogg1)
  673.        )
  674.    )';


  675. create public database link DBLINK_OGG1
  676.   connect to LHR identified by lhr
  677.   using 'OGG1';



  678. ----linux查看文件的详细时间
  679. ls ctlfile*20150212* --full-time|awk '{print $6,$7,$9}'


  680. -----------添加磁盘
  681. fdisk -l
  682. fdisk /dev/sdf
  683. ...
  684. mkfs.ext4 /dev/sdf1
  685. [root@rhel6_lhr ~]# mkdir /u03
  686. [root@rhel6_lhr ~]# mount /dev/sdf1 /u03
  687. [root@rhel6_lhr ~]# vi /etc/fstab
  688.  /dev/sdf1 /u03 ext4 defaults 0 0


  689.   chown oracle:oinstall /u04


  690. linux 修改主机名,永久生效:
  691. vim /etc/sysconfig/network
  692. vim /etc/hosts


  693. aix 修改主机名:
  694. 修改主机名暂时生效:
  695. hostname NEW_HOSTNAME
  696. 永久生效 smit hostname
  697. 或者 smit tcpip - futher configureation - hostname -set the hostname
  698. uname -S hostname
  699. 或者直接用命令 chdev -l inet0 -a hostname=NEW_HOSTNAME

  700. ||||||||||||||||||||
  701. 正确更改IP 地址是用 smit tcpip 进入菜单之后,选择further configuration 再选 Network Interfaces,再选 Network Interface Selection,
  702. 再选 Change /show characteristic of a network interface来更改 IP,这样/etc/hosts就不会新加入一条记录,只需更改文件中相应的IP就行了。





  703. -------------------------------------------------------------- 闪回恢复区满
  704. select * from v$flash_recovery_area_usage;
  705. ALTER SYSTEM SET db_recovery_file_dest_size='2G';

  706. --关闭闪回恢复区
  707. alter system set db_recovery_file_dest='';
  708.     

  709. --EXPIRED可以理解为失效的备份集,即物理文件丢失。OBSOLETE可以理解为过期的备份集。
  710. CROSSCHECK ARCHIVELOG ALL;
  711. LIST EXPIRED ARCHIVELOG ALL;
  712. DELETE EXPIRED ARCHIVELOG ALL;
  713.     



  714. --错误记录
  715. v_error := SQLCODE || ',' || SQLERRM || chr(13) ||dbms_utility.format_error_backtrace;
  716. --DML行数
  717. v_count :=TO_CHAR(SQL%ROWCOUNT);


  718. -----------块改变跟踪
  719. alter system set db_create_file_dest = '/u01/bct/' scope=both sid='*';
  720. alter database enable block change tracking;

  721. ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+FRA';
  722. ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/mydir/rman_change_track.f' REUSE;

  723. ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
  724. COL STATUS FORMAT A8
  725. COL FILENAME FORMAT A60
  726. SELECT STATUS, FILENAME,BYTES FROM V$BLOCK_CHANGE_TRACKING;



  727. SELECT file#,
  728.        AVG(datafile_blocks),
  729.        AVG(blocks_read),
  730.        AVG(blocks_read / datafile_blocks) * 100 AS PCT_READ_FOR_BACKUP,
  731.        AVG(blocks)
  732. FROM v$backup_datafile
  733. WHERE used_change_tracking = 'YES'
  734. AND incremental_level > 0
  735. GROUP BY file#;



  736. -------------------------------------------------------------- 联机重做日志
  737. ----------清除未归档日志
  738. ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2;
  739. ----------清空损坏的日志文件 成功执行前提:一致性关闭,解决ora-00392错误
  740. ALTER DATABASE CLEAR LOGFILE GROUP 2;


  741. ----- 添加 redo
  742. alter database add logfile group 4 'c:\oracle\oradata\orcl\redo04.log' size 100m;
  743. alter database add logfile;
  744. alter database add logfile [group n];
  745. alter database add logfile member '<dir>' to group [n] /*add logfile member这个方法仅使用未使用OMF的日志文件,对于已经运用了OMF的日志组,无法使用该功能添加日志文件*/

  746. alter database add logfile thread 1 group 4 ('+DATA','+FRA') size 50M;


  747. ---rac库可以在同一个实例下添加
  748. alter database add logfile thread 1 group 7('+DATA_DG/querydb/redo07_1.log','+DATA_DG/querydb/redo07_2.log') size 1024m;
  749. alter database add logfile thread 2 group 8('+DATA_DG/querydb/redo08_1.log','+DATA_DG/querydb/redo08_2.log') size 1024m;



  750.  
  751. --- 删除
  752. alter database drop logfile group 4;
  753. alter database drop logfile member '';



  754. --------重命名redo
  755. SQL> ho cp /u03/app/oracle/oradata/ora1024g/redo03.log /u03/app/oracle/oradata/ora1024g/redo04.log
  756. SQL> alter database rename file '/u03/app/oracle/oradata/ora1024g/redo03.log' to '/u03/app/oracle/oradata/ora1024g/redo04.log';


  757. --------重命名 表空间 重命名表空间
  758. alter tablespace users rename to users01;





  759. ----------------- 一个查询慢的sql例子
  760. select count(1) from dba_objects a
  761. inner join user_objects b on 1=1
  762. inner join user_objects c on 1=1
  763. ;

  764. ------------------------------------------------------------------------------------------------------------------------------------------------------------------- 构造大表

  765. select level,level from dual connect by level<=1000;


  766. -----------外部表
  767. CREATE DIRECTORY EXT_LOG AS '/tmp';
  768. DROP TABLE ALERT_LOG_lhr2;
  769. CREATE TABLE ALERT_LOG_lhr2(
  770.   TEXT VARCHAR2(4000)
  771.   )ORGANIZATION EXTERNAL
  772.   (TYPE ORACLE_LOADER
  773.   DEFAULT DIRECTORY EXT_LOG
  774.   ACCESS PARAMETERS
  775.   (RECORDS DELIMITED BY NEWLINE CHARACTERSET utf8
  776.     nobadfile
  777. nodiscardfile
  778. nologfile
  779. FIELDS TERMINATED BY 0X'0D' LDRTRIM
  780. REJECT ROWS WITH ALL NULL FIELDS
  781.   )LOCATION('lhr1.txt')
  782. ) reject limit unlimited ;



  783. ----------文件格式
  784. df -hT

  785. --------------ORA-00845: MEMORY_TARGET not supported on this system
  786. 办法: 修改/etc/fstab
  787.  tmpfs /dev/shm tmpfs defaults,size=1.5G 0 0

  788. [root@FWDB ~]# mount -o remount /dev/shm



  789.  简单来说就是 MEMORY_MAX_TARGET 的设置不能超过 /dev/shm 的大小:

  790.  
  791. [oracle@FWDB FWDB]$ df -h | grep shm
  792. tmpfs 2.0G 0 2.0G 0% /dev/shm

  793.       马上把它加大:

  794.  
  795. [root@FWDB ~]# cat /etc/fstab | grep tmpfs
  796. tmpfs /dev/shm tmpfs defaults,size=4G 0 0
  797.       现在可以通过重启使这个配置生效,也可以通过重新挂载来修改其大小:
  798.  
  799. [root@FWDB ~]# mount -o remount,size=4G /dev/shm
  800. [root@FWDB ~]# df -h | grep shm
  801. tmpfs 4.0G 0 4.0G 0% /dev/shm
  802.       再次启动数据库,没有报错了。

  803. 二、修改/dev/shm大小
  804.  
  805. 默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。
  806. #mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
  807. 在2G的机器上,将最大容量调到1.5G,并且inode数量调到1000000,这意味着大致可存入最多一百万个小文件。
  808.  如果需要永久修改/dev/shm的值,需要修改/etc/fstab
  809.  tmpfs /dev/shm tmpfs defaults,size=1.5G 0 0

  810. mount -o remount /dev/shm


  811. umount tmpfs
  812. mount -t tmpfs shmfs -o size=3000m /dev/shm
  813. vi /etc/fstab




  814. ---red hat重启网卡
  815. service network restart
  816. /etc/rc.d/init.d/network restart

  817. ---suse重启网卡
  818. service network restart
  819. rcnetwork restart
  820. /etc/rc.d/init.d/network restart


  821. ----卸载网卡
  822. ifconfig eth0 down

  823. --- 单独重启网卡
  824. ifdown eth0 && ifup eth0
  825. ifconfig eth0 down && ifconfig eth0 up


  826. ----------------------------------------------- 固定IP 配置静态ip地址
  827. ifconfig eth1 192.168.210.108 broadcast 192.168.210.254 netmask 255.255.255.0
  828. ifconfig eth1 192.168.59.130 broadcast 192.168.59.1 netmask 255.255.255.0
  829. ifconfig eth0 192.168.59.130 netmask 255.255.255.0 gw 192.168.129.1



  830. chkconfig NetworkManager off
  831. chkconfig network on
  832. service NetworkManager stop
  833. service network start

  834. ---若还有问题,可删掉网卡重新添加
  835. vi /etc/sysconfig/network-scripts/ifcfg-eth0
  836. vi /etc/udev/rules.d/70-persistent-net.rules
  837. DEVICE=eth0
  838. IPADDR=192.168.59.130
  839. NETMASK=255.255.255.0
  840. NETWORK=192.168.59.0
  841. BROADCAST=192.168.59.255
  842. GATEWAY=192.168.59.2
  843. ONBOOT=yes
  844. USERCTL=no
  845. BOOTPROTO=static
  846. #HWADDR=00:0c:29:97:f1:5b
  847. TYPE=Ethernet
  848. IPV6INIT=no
  849. DNS1=202.96.209.5
  850. DNS2=8.8.8.8
  851. NAME="System eth0"





  852. ----------------- 动态ip地址
  853. DEVICE=eth0
  854. ONBOOT=yes
  855. USERCTL=no
  856. BOOTPROTO=dhcp
  857. HWADDR=00:0c:29:97:f1:5b
  858. TYPE=Ethernet
  859. PEERDNS=yes
  860. IPV6INIT=no





  861. [root@rhel6 ~]# export LANG=C
  862. [root@rhel6 ~]# setup
  863. [root@rhel6 ~]#




  864. ------------------------------------------------- 修改主机名
  865. 永久生效:
  866. [root@zijuan /]# vim /etc/sysconfig/network
  867. NETWORKING=yes
  868. NETWORKING_IPV6=yes
  869. HOSTNAME=zijuan

  870. HOSTNAME=zijuan表示主机设置为zijuan.
  871. 注意:修改主机名后,需要重启系统后生效,或者切换个用户然后切换回来就OK


  872. 查看/etc/hosts文件中必须包含a fully qualified name for the server
  873.  [root@localhost lhr]# cat /etc/hosts
  874. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  875. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  876. 192.168.59.140 dg
  877. [root@localhost lhr]# hostname
  878. localhost.localdomain
  879. [root@localhost lhr]# hostname dg
  880. [root@localhost lhr]# hostname
  881. dg









  882. -----归档格式
  883. alter system set log_archive_format = "log_oradg10g_%d_%t_%s_%r.arc" scope=spfile;



  884. ---------------------------------------- drop database 删除数据库

  885. 1、dbca静默删库:dbca -silent -deleteDatabase -sourceDB mydb
  886. 2、SQL窗口:
  887. alter database close;
  888. alter system enable restricted session;
  889. drop database;
  890. 3、SQL窗口:
  891. sql > startup force mount restrict;
  892. sql > drop database;
  893. 注意:强烈推荐第一种办法,以上2和3的办法若是rac库需要设置cluster_database为false后才可以执行drop database,命令为:alter system set cluster_database=false sid='*' scope=spfile;




  894. -------------------------------------- 配置本地yum源

  895. -----------rhel 6.5
  896. mkdir -p /media/lhr/cdrom
  897. mount /dev/sr0 /media/lhr/cdrom/
  898. #设置开机自动挂载系统镜像文件 vi /etc/fstab 添加以下内容
  899. /dev/sr0 /media/cdrom iso9660 defaults,ro,loop 0 0

  900. cd /etc/yum.repos.d/
  901. cp rhel-media.repo rhel-media.repo.bk
  902. vi /etc/yum.repos.d/rhel-media.repo
  903. [rhel-media]
  904. name=Red Hat Enterprise Linux 6.5
  905. baseurl=file:///media/cdrom
  906. enabled=1
  907. gpgcheck=1
  908. gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release


  909. yum install httpd  #安装命令
  910. yum install -y *sz*
  911. rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm

  912. yum -y remove mysql-libs-5.1.71
  913. yum list | grep mysql
  914. rpm -e --nodeps mysql-libs.x86_64

  915. -----------------命令后rpm包被下载到了什么地方
  916. 每次在执行完yum命令后,系统都会把需要用到的rpm包放在/var/cache/yum/这个目录下,但下载源的不同还是会放在不同源目录下。
  917. find /var/cache/yum/ -name kmod-oracleasm*



  918. -------------- rhel5.5
  919. # mkdir /media/cdrom
  920. 编辑 /etc/fstab 文件,在文件尾部添加如下内容,以便开机自动挂载光盘:
  921. [root@localhost ~]# tail -1 /etc/fstab
  922. /dev/cdrom /media/cdrom iso9660 defaults 0 0
  923. [root@localhost ~]#
  924. [root@localhost ~]# mount -a
  925. mount: block device /dev/sr0 is write-protected, mounting read-only
  926. [root@localhost ~]#
  927. 清空并编辑 YUM 源配置文件
  928. 清空 /etc/yum.repos.d/rhel-debuginfo.repo 文件并新增以下内容:
  929. [root@localhost ~]# cp /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/rhel-debuginfo.repo.bak
  930. [root@localhost ~]# cat /etc/yum.repos.d/rhel-debuginfo.repo
  931. [rhel-debuginfo]
  932. name=Red Hat Enterprise Linux $releasever - $basearch - Debug
  933. baseurl=file:///media/cdrom
  934. enabled=0
  935. gpgcheck=0

  936. # vi /etc/yum.repos.d/my.repo
  937.  [Oracle]
  938.  name=OEL-$releasever – Media
  939.  baseurl=file:///mnt/Server
  940.  gpgcheck=0
  941.  enabled=1
  942.  如果是RHEL或者CentOS,请先将/etc/yum.repos.d下面的文件删除或者移动到别的目录下,RHEL创建方法和OEL一样,CentOS则baseurl=file:///mnt/ 即可,因为CentOS的repodata目录就在光盘根下。




  943. ------查看资源的属性值:
  944. [root@rac2 ~]# crsctl stat res ora.cluster_interconnect.haip -p -init | grep ENABLED
  945. ENABLED=0
  946. [root@rac2 ~]# crsctl stat res ora.asm -p -init | grep START_DEPENDENCIES
  947. START_DEPENDENCIES=hard(ora.cssd,ora.ctssd)pullup(ora.cssd,ora.ctssd)weak(ora.drivers.acfs)
  948. [root@rac2 ~]#


  949. ---修改资源的属性值
  950. crsctl modify resource ora.<diskgroup>.dg -attr AUTO_START=always

  951. ---启动磁盘组
  952. srvctl start diskgroup -g data -n "rac2"


  953. ------------- 添加rac数据库到集群
  954. srvctl add database -d DGPHY -c RAC -o /oracle/app/oracle/product/11.2.0/db -p '+DATA/TESTDGPHY/PARAMETERFILE/spfiledgphy.ora' -r physical_standby -n TESTDG

  955. srvctl add instance -d DGPHY -i DGPHY1 -n ZFZHLHRDB1
  956. srvctl add instance -d DGPHY -i DGPHY2 -n ZFZHLHRDB2

  957. srvctl status database -d DGPHY
  958. srvctl start database -d TESTDG

  959. srvctl remove database -d DGPHY

  960. --添加监听到crs 必须是grid添加
  961. [ZFZHLHRDB3:grid]:/home/grid>srvctl add listener -l LISTENER_LHRDG -p 1523 -o $ORACLE_HOME
  962. srvctl config listener -l LISTENER_LHRDG -a
  963. ① rac添加LISTENER资源的时候需要使用grid用户
  964. ② srvctl config查看资源的具体配置情况
  965. ③ srvctl modify可以修改资源的配置


  966. --添加单实例
  967. srvctl add database -d LHRDGPRI -c SINGLE -o /oracle/app/oracle/product/11.2.0/db -p '/oracle/app/oracle/product/11.2.0/db/dbs/spfileLHRDGPHY1.ora' -r physical_standby -n LHRDGPRI -x ZFZHLHRDB1 -i LHRDGPRI


  968.  

  969. crsctl status resource ora.asm -f
  970. crsctl modify resource ora.asm -attr "GEN_USR_ORA_INST_NAME@SERVERNAME(zfxdeskdb1)=+ASM1"
  971. crsctl modify resource ora.asm -attr "GEN_USR_ORA_INST_NAME@SERVERNAME(zfxdeskdb2)=+ASM2"
  972. srvctl stop asm -f



  973. -------------- 11g rac 修改归档 alter system set log_archive_dest_1='LOCATION=/arch/DGPHY' scope=spfile sid='*'; 
  974. SQL>alter system set log_archive_dest_1='LOCATION=+FRA/GUITAR/ARC1' scope=spfile sid='guitar1'; 
  975. Diskgroup altered.  
  976.   
  977. SQL>alter system set log_archive_dest_1='LOCATION=+FRA/GUITAR/ARC2' scope=spfile sid='guitar2'; 
  978. Diskgroup altered.  
  979.   
  980. 干净关闭数据库然后启动库到mount,在其中一个实例上执行alter database archivelog 然后打开数据库即可。

  981. [root@node1 ~]# srvctl stop database -d jmrac -o immediate
  982. [root@node1 ~]# srvctl start database -d jmrac -o mount



  983. ------------------ mgmtdb
  984. srvctl stop mgmtdb
  985. srvctl status mgmtdb
  986. srvctl config mgmtdb
  987. srvctl disable mgmtdb
  988. srvctl disable mgmtlsnr
  989. srvctl add mgmtdb
  990. srvctl config mgmtdb
  991. srvctl disable mgmtdb
  992. srvctl enable mgmtdb
  993. srvctl getenv mgmtdb
  994. srvctl modify mgmtdb
  995. srvctl relocate mgmtdb
  996. srvctl remove mgmtdb
  997. srvctl setenv mgmtdb
  998. srvctl start mgmtdb
  999. srvctl status mgmtdb
  1000. srvctl stop mgmtdb
  1001. srvctl unsetenv mgmtdb
  1002. srvctl add mgmtlsnr
  1003. srvctl config mgmtlsnr
  1004. srvctl disable mgmtlsnr
  1005. srvctl enable mgmtlsnr
  1006. srvctl getenv mgmtlsnr
  1007. srvctl modify mgmtlsnr
  1008. srvctl remove mgmtlsnr
  1009. srvctl setenv mgmtlsnr
  1010. srvctl start mgmtlsnr
  1011. srvctl status mgmtlsnr
  1012. srvctl stop mgmtlsnr
  1013. srvctl unsetenv mgmtlsnr


  1014. [grid@raclhr-12cR1-N1 ~]$ export ORACLE_SID=-MGMTDB
  1015. [grid@raclhr-12cR1-N1 ~]$ sqlplus / as sysdba

  1016. Database unique name: _mgmtdb
  1017. Database name: _mgmtdb
  1018. Oracle user: grid
  1019. Database instance: -MGMTDB
  1020. service_names:_mgmtdb


  1021. ------------------------------- export display
  1022. export DISPLAY=192.168.59.1:0.0
  1023. xhost +



  1024. 在linux系统中用Oracle帐号执行DBCA或其他JAVA图形界面程序时,报错:

  1025. Xlib: connection to ":0.0" refused by server
  1026.  Xlib: No protocol specified

  1027.  Error: Can't open display: :0.0

  1028. 解决办法:用root登陆,在#提示符后输入:

  1029. xhost local:oracle


  1030. -----------------------------iSCSI target
  1031. more /etc/ietd.conf --配置文件
  1032. service iscsi-target start #启动iSCSI target
  1033. cat /proc/net/iet/volume #查看iSCSI-target共享出的硬盘
  1034. cat /proc/net/iet/session #查看客户端(initiator端)登陆到target的情况


  1035. -----------------------------iSCSI initiator
  1036. more /etc/iscsi/initiatorname.iscsi
  1037. more /etc/iscsi/iscsid.conf

  1038. iscsiadm -m discovery -t sendtargets -p 192.168.59.200:3260
  1039. iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.5e423e1e4d90 -p 192.168.59.200:3260 -l

  1040. iscsiadm --mode discovery --type sendtargets --portal 192.168.59.200
  1041. iscsiadm --mode node --targetname iqn.2006-01.com.openfiler:tsn.5e423e1e4d90 –portal 192.168.59.200:3260 --login
  1042. iscsiadm -m session -P 3


  1043. service iscsi start #启动iSCSI initiator
  1044. /etc/init.d/iscsi start

  1045. service iscsi start
  1046. service iscsid start

  1047. chkconfig iscsi on
  1048. chkconfig iscsid on

  1049. chkconfig --level 2345 iscsi on
  1050. chkconfig --list|grep iscsi





  1051. -------------------------- 多路径常用命令
  1052. rpm -qa|grep multipath
  1053. modprobe dm-multipath
  1054. modprobe dm-round-robin
  1055. lsmod |grep multipath
  1056. chkconfig --level 2345 multipathd on
  1057. chkconfig --list|grep multipathd
  1058. chkconfig --list multipathd
  1059. multipath -ll

  1060. ---------------获取wwid
  1061. --在RHEL 6中,可以通过如下方式获取磁盘wwid:
  1062. for i in `cat /proc/partitions | awk {'print $4'} |grep sd`; do echo "### $i: `scsi_id --whitelist /dev/$i`"; done
  1063. -- 在RHEL 5中,可以通过如下方式获取磁盘wwid:
  1064. for i in `cat /proc/partitions | awk {'print $4'} |grep sd`; do echo "### $i: `scsi_id -g -u -s /block/$i`"; done



  1065. -------------------------------------------------------------- ASM
  1066. ---------------------------- oracleasm常用命令
  1067. /usr/sbin/oracleasm configure -i
  1068. /usr/sbin/oracleasm createdisk DISK1 /dev/sdb1
  1069. /etc/init.d/oracleasm scandisks
  1070. /etc/init.d/oracleasm listdisks
  1071. /etc/init.d/oracleasm enable
  1072. /usr/sbin/oracleasm enable
  1073. /usr/sbin/oracleasm restart
  1074. /usr/sbin/oracleasm createdisk DISKNAME devicename
  1075. /usr/sbin/oracleasm deletedisk DISKNAME
  1076. /usr/sbin/oracleasm querydisk {DISKNAME | devicename}
  1077. /usr/sbin/oracleasm listdisks
  1078. /usr/sbin/oracleasm scandisks





  1079. ------ ASM磁盘
  1080. $ORACLE_HOME/bin/kfod disk=asm s=true ds=true c=true
  1081. /grid/stage/ext/bin/kfod disk=asm s=true ds=true c=true



  1082. create diskgroup DATA external redundancy disk '/dev/raw/raw*';
  1083. create diskgroup FRA external redundancy disk '/dev/rhdisk3'; --创建磁盘组FRA
  1084. CREATE DISKGROUP ACFSDG external redundancy DISK '/dev/oracleasm/disks/VOL1' ATTRIBUTE 'compatible.asm' = '11.2','compatible.rdbms' = '11.2','compatible.advm'='11.2';
  1085. create diskgroup OCR exteRnal redundancy disk 'ORCL:OVDISK' attribute 'compatible.asm'='11.2','compatible.rdbms'='11.2';




  1086. ---修改磁盘组的兼容属性
  1087. ALTER DISKGROUP asm_dg SET ATTRIBUTE 'compatible.asm' = '11.1';
  1088. ALTER DISKGROUP asm_dg SET ATTRIBUTE 'compatible.rdbms' = '11.1';

  1089. COLUMN name FORMAT A10
  1090. COLUMN compatibility FORMAT A20
  1091. COLUMN database_compatibility FORMAT A20
  1092. SELECT group_number, name, compatibility, database_compatibility FROM v$asm_diskgroup;

  1093. set line 9999
  1094. set pagesize 9999
  1095. col path format a60
  1096. SELECT a.group_number, disk_number,mount_status, a.name, path FROM v$asm_disk a order by a.disk_number;
  1097. select instance_name,status from v$instance;

  1098. set line 999
  1099. select name,state,free_mb,required_mirror_free_mb,usable_file_mb,a.group_number, disk_number,mount_status, path from v$asm_diskgroup a;
  1100. select a.group_number,name,TYPE,state,TOTAL_MB,free_mb from v$asm_diskgroup a;
  1101. select name,state,free_mb,required_mirror_free_mb,usable_file_mb,a.group_number from v$asm_diskgroup a;




  1102. alter diskgroup DG1 mount;


  1103. ---nomount状态下强制删除磁盘组
  1104. drop diskgroup oradg force including contents;
  1105. alter diskgroup DG1 drop disk DG1_VOL5; --删除磁盘组DG1中的磁盘VOL5

  1106. alter system set asm_diskstring='/dev/asm-disk*','/dev/raw/raw*';
  1107. alter diskgroup DATA add disk '/dev/raw/raw1';




  1108. ------------------------ faking asmdisk asm磁盘
  1109. ---- 添加loop设备个数
  1110. 第一种办法:修改 /etc/modprobe.conf 文件添加参数:options loop max_loop=20 可以通过 modprobe -v loop 命令立即加载该模块,或重启
  1111. 第二种办法(通用):mknod -m 0660 /dev/loopX b 7 X

  1112. raw -qa
  1113. losetup -a
  1114. --mknod -m 0660 /dev/loopX b 7 X
  1115. mknod -m 0660 /dev/loop9 b 7 9



  1116. mkdir /asmdisk
  1117. dd if=/dev/zero of=/asmdisk/disk1 bs=1024k count=2000
  1118. dd if=/dev/zero of=/asmdisk/disk2 bs=1024k count=2000
  1119. dd if=/dev/zero of=/asmdisk/disk3 bs=1024k count=2000
  1120. dd if=/dev/zero of=/asmdisk/disk4 bs=1024k count=2000
  1121. dd if=/dev/zero of=/asmdisk/disk5 bs=1024k count=2000

  1122. /sbin/losetup /dev/loop1 /asmdisk/disk1
  1123. /sbin/losetup /dev/loop2 /asmdisk/disk2
  1124. /sbin/losetup /dev/loop3 /asmdisk/disk3
  1125. /sbin/losetup /dev/loop4 /asmdisk/disk4
  1126. /sbin/losetup /dev/loop5 /asmdisk/disk5

  1127. raw /dev/raw/raw1 /dev/loop1
  1128. raw /dev/raw/raw2 /dev/loop2
  1129. raw /dev/raw/raw3 /dev/loop3
  1130. raw /dev/raw/raw4 /dev/loop4
  1131. raw /dev/raw/raw5 /dev/loop5

  1132. chmod 660 /dev/raw/raw1
  1133. chmod 660 /dev/raw/raw2
  1134. chmod 660 /dev/raw/raw3
  1135. chmod 660 /dev/raw/raw4
  1136. chmod 660 /dev/raw/raw5
  1137. chown oracle:dba /dev/raw/raw1
  1138. chown oracle:dba /dev/raw/raw2
  1139. chown oracle:dba /dev/raw/raw3
  1140. chown oracle:dba /dev/raw/raw4
  1141. chown oracle:dba /dev/raw/raw5


  1142. ------Add the following entries to the file "/etc/rc.local"
  1143. /sbin/losetup /dev/loop1 /asmdisk/disk1
  1144. /sbin/losetup /dev/loop2 /asmdisk/disk2
  1145. /sbin/losetup /dev/loop3 /asmdisk/disk3
  1146. /sbin/losetup /dev/loop4 /asmdisk/disk4
  1147. /sbin/losetup /dev/loop5 /asmdisk/disk5

  1148. raw /dev/raw/raw1 /dev/loop1
  1149. raw /dev/raw/raw2 /dev/loop2
  1150. raw /dev/raw/raw3 /dev/loop3
  1151. raw /dev/raw/raw4 /dev/loop4
  1152. raw /dev/raw/raw5 /dev/loop5

  1153. chmod 660 /dev/raw/raw1
  1154. chmod 660 /dev/raw/raw2
  1155. chmod 660 /dev/raw/raw3
  1156. chmod 660 /dev/raw/raw4
  1157. chmod 660 /dev/raw/raw5
  1158. chown oracle:dba /dev/raw/raw1
  1159. chown oracle:dba /dev/raw/raw2
  1160. chown oracle:dba /dev/raw/raw3
  1161. chown oracle:dba /dev/raw/raw4
  1162. chown oracle:dba /dev/raw/raw5




  1163. ------------------------ Simulating Asm by faking hardware
  1164. -->Faking Hardware
  1165. -->Instaling ASM Lib
  1166. -->Configuring the disks
  1167. -->Install DB & ASM instance

  1168. ---Faking Hardware: root 用户

  1169. mkdir /asmdisk
  1170. dd if=/dev/zero of=/asmdisk/disk1 bs=1024k count=2000
  1171. dd if=/dev/zero of=/asmdisk/disk2 bs=1024k count=2000

  1172. /sbin/losetup /dev/loop1 /asmdisk/disk1
  1173. /sbin/losetup /dev/loop2 /asmdisk/disk2

  1174. raw /dev/raw/raw1 /dev/loop1
  1175. raw /dev/raw/raw2 /dev/loop2

  1176. chmod 660 /dev/raw/raw1
  1177. chmod 660 /dev/raw/raw2
  1178. chown grid:asmadmin /dev/raw/raw1
  1179. chown grid:asmadmin /dev/raw/raw2


  1180. ------Add the following entries to the file "/etc/rc.local"
  1181. echo "/sbin/losetup /dev/loop1 /asmdisk/disk1" >>/etc/rc.local
  1182. echo "/sbin/losetup /dev/loop2 /asmdisk/disk2" >>/etc/rc.local




  1183. --------------------------------- oracle 日志

  1184. oracleasm日志: tail -f /var/log/oracleasm    
  1185. oracle agent日志: tail -f /u01/app/11.2.0/grid/log/rhel5/agent/ohasd/oraagent_grid/oraagent_grid.log
  1186. asm 告警日志:alert_log='tail -200f $ORACLE_BASE/diag/asm/+asm/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
  1187. CRS 启动日志: more $ORACLE_HOME/log/$HOSTNAME/crsd/crsd.log

  1188. ------查找:find /u01/app/ -name crsd.log
  1189. crs日志地址:/u01/app/11.2.0/grid/log/rac2/crsd/crsd.log


  1190. oracle 10g 告警日志: /u02/app/oracle/admin/ora10g/bdump
  1191. oracle 11g 告警日志: select value from v$diag_info where name='Default Trace File';


  1192. System Control Statement 系统控制语句 alter system


  1193.  

  1194. ------------------------------------------------------------------------------------------- 恢复到new host

  1195. set pagesize 200 linesize 200
  1196. select 'set newname for datafile ' || a.FILE# || ' to "' || a.NAME || '";'
  1197.   from v$datafile a
  1198. union all
  1199. select 'set newname for tempfile ' || a.FILE# || ' to "' || a.NAME || '";'
  1200.   from v$tempfile a
  1201. union all
  1202. SELECT 'SQL "ALTER DATABASE RENAME FILE ''''' || a.MEMBER || ''''' to ''''' ||
  1203.        a.MEMBER || ''''' ";'
  1204.   FROM v$logfile a;



  1205. RUN
  1206. {
  1207.   # allocate a channel to the tape device
  1208.   # ALLOCATE CHANNEL c1 DEVICE TYPE sbt PARMS '...';
  1209.   ALLOCATE CHANNEL c1 DEVICE TYPE DISK;


  1210.   # rename the data files and online redo logs
  1211.   SET NEWNAME FOR DATAFILE 1 TO '?/oradata/test/system01.dbf';
  1212.   SET NEWNAME FOR DATAFILE 2 TO '?/oradata/test/undotbs01.dbf';
  1213.   SET NEWNAME FOR DATAFILE 3 TO '?/oradata/test/cwmlite01.dbf';
  1214.   SET NEWNAME FOR DATAFILE 4 TO '?/oradata/test/drsys01.dbf';
  1215.   SET NEWNAME FOR DATAFILE 5 TO '?/oradata/test/example01.dbf';
  1216.   SET NEWNAME FOR DATAFILE 6 TO '?/oradata/test/indx01.dbf';
  1217.   SET NEWNAME FOR DATAFILE 7 TO '?/oradata/test/tools01.dbf';
  1218.   SET NEWNAME FOR DATAFILE 8 TO '?/oradata/test/users01.dbf';
  1219.   SET NEWNAME FOR TEMPFILE 1 TO '?/oradata/test/temp01.dbf';

  1220.   SQL "ALTER DATABASE RENAME FILE ''/dev3/oracle/dbs/redo01.log''
  1221.       TO ''?/oradata/test/redo01.log'' ";
  1222.   SQL "ALTER DATABASE RENAME FILE ''/dev3/oracle/dbs/redo02.log''
  1223.       TO ''?/oradata/test/redo02.log'' ";

  1224.   # Do a SET UNTIL to prevent recovery of the online logs
  1225.   SET UNTIL SCN 123456;
  1226.   # restore the database and switch the data file names
  1227.   RESTORE DATABASE;
  1228.   SWITCH DATAFILE ALL;
  1229.   SWITCH TEMPFILE ALL;
  1230.   # recover the database
  1231.   RECOVER DATABASE;
  1232. }
  1233.  

  1234. ------------------------------------------------- 数据库未挂掉的情况下的恢复


  1235. [root@orcltest ~]# ps -ef|grep ora_lgwr_
  1236. .oracle 32173 1 0 06:31 ? 00:00:00 ora_lgwr_oratest
  1237. root 33247 32901 0 10:19 pts/0 00:00:00 grep ora_lgwr_
  1238. [root@orcltest ~]# cd /proc/32173/fd
  1239. [root@orcltest fd]# ll | grep deleted
  1240. lrwx------ 1 root root 64 May 5 15:10 266 -> /u02/app/oracle/oradata/oratest/temp01.dbf (deleted)
  1241. cp 266 /u02/app/oracle/oradata/oratest/temp01.dbf



  1242. ------------------------------------------------------------------------------------------- asm <=> os
  1243. ----所有文件列表 数据文件
  1244. set line 9999 pagesize 9999
  1245. col FILE_NAME format a60
  1246. select 'datafile' file_type, file#,name FILE_NAME,status,enabled from v$datafile
  1247. union all
  1248. select 'tempfile',file#,name FILE_NAME,status,enabled from v$tempfile
  1249. union all
  1250. select 'logfile',group# file#,member FILE_NAME,status,'' from v$logfile
  1251. union all
  1252. select 'controlfile', to_number('') ,name FILE_NAME,status,'' from v$controlfile
  1253. ;




  1254. set line 9999 pagesize 9999
  1255. col FILE_NAME format a50
  1256. select file#,name FILE_NAME,status,enabled from v$datafile;
  1257. --select file#,name FILE_NAME from v$dbfile;

  1258. col FILE_NAME format a50
  1259. select FILE_NAME,FILE_ID,a.TABLESPACE_NAME, b.status ts_status ,BYTES from dba_data_files a,dba_tablespaces b where a.TABLESPACE_NAME=b.TABLESPACE_NAME;


  1260. -------------------------------------------os--->>asm
  1261. -- answer 1 set newname 好
  1262. run{
  1263. crosscheck backup;
  1264. sql 'alter tablespace testdg offline immediate';
  1265. set newname for datafile 14 to'+DATA';
  1266. restore tablespace testdg;
  1267. switch datafile 14;
  1268. recover tablespace testdg;
  1269. sql 'alter tablespace testdg online';
  1270. }


  1271. -- answer 2 convert 好
  1272. rman下:
  1273. convert datafile '/home/oracle/testdg.dbf' format '+DATA';
  1274. sql 下:
  1275. alter tablespace testdg offline ;
  1276. alter tablespace testdg rename datafile '/home/oracle/testdg.dbf' to '+DATA/orclasm/datafile/testdg.284.868895277';
  1277. recover datafile 14;
  1278. alter tablespace testdg online;




  1279. -- answer 3 dbms_file_transfer
  1280. create directory asmsrc as'+DATA/orclasm/datafile/';
  1281. create directory osdesc as '/home/oracle/';

  1282. alter tablespace testdg offline;
  1283.  
  1284. exec dbms_file_transfer.copy_file('osdesc','testdg.dbf','ASMSRC','testdg.dbf');

  1285. alter database rename file'/home/oracle/testdg.dbf' to '+DATA/orclasm/datafile/testdg.dbf';
  1286. alter tablespace testdg online ;





  1287. -- answer 4 backup as copy
  1288. run{
  1289. shutdown immediate;
  1290. startup mount;
  1291. backup as copy datafile 14 format '+DATA';
  1292. }
  1293. SWITCH TABLESPACE testdg TO COPY;
  1294. alter database open;



  1295. -- answer 5 cp

  1296. alter tablespace testdg offline;
  1297. [root@rhel6_lhr ~]# cp /home/oracle/testdg.dbf /home/grid/testdg.dbf
  1298. [root@rhel6_lhr ~]# chown grid:oinstall /home/grid/testdg.dbf
  1299. [root@rhel6_lhr ~]# su - grid
  1300. ASMCMD> cp /home/grid/testdg.dbf +DATA/orclasm/datafile/testdg.dbf
  1301. copying /home/grid/testdg.dbf -> +DATA/orclasm/datafile/testdg.dbf
  1302. ASMCMD>
  1303. alter database rename file'/home/oracle/testdg.dbf' to '+DATA/orclasm/datafile/testdg.dbf';
  1304. alter tablespace testdg online ;



  1305. ---生成standby controlfile
  1306. rman:backup device type disk format '/arch/standby_new_lhr_%U.ctl' current controlfile for standby;
  1307. sql:alter database create standby controlfile as '/arch/standby_new_lhr_contol.ctl'



  1308. --------------------控制文件转换
  1309. RMAN> catalog controlfilecopy '/home/oracle/rman_back/ctl_orastrac.ctl_bk';

  1310. cataloged control file copy
  1311. control file copy file name=/home/oracle/rman_back/ctl_orastrac.ctl_bk RECID=7 STAMP=881248289

  1312. RMAN> backup as copy controlfilecopy '/home/oracle/rman_back/ctl_orastrac.ctl_bk' format '+DATA';

  1313. Starting backup at 01-JUN-2015 15:11:44
  1314. using channel ORA_DISK_1
  1315. channel ORA_DISK_1: starting datafile copy
  1316. input control file copy name=/home/oracle/rman_back/ctl_orastrac.ctl_bk
  1317. output file name=+DATA/orastrac/controlfile/backup.331.881248305 tag=TAG20150601T111610 RECID=8 STAMP=881248307
  1318. channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
  1319. Finished backup at 01-JUN-2015 15:11:51

  1320. RMAN-06497: WARNING: control file is not current, control file AUTOBACKUP skipped

  1321. RMAN> restore controlfile to '+DATA' FROM '+DATA/orastrac/controlfile/backup.331.881248305';

  1322. Starting restore at 01-JUN-2015 15:12:49
  1323. using channel ORA_DISK_1

  1324. channel ORA_DISK_1: copied control file copy
  1325. Finished restore at 01-JUN-2015 15:12:50



  1326. ------------------------------------------------ asm --->> os


  1327. -- answer 1 好
  1328. rman下:
  1329. convert datafile '+DATA/orclasm/datafile/testdg.277.868887219' format '/home/oracle/testdg.dbf';
  1330. sql 下:
  1331. alter tablespace testdg offline ;
  1332. alter tablespace testdg rename datafile '+DATA/orclasm/datafile/testdg.277.868887219' to '/home/oracle/testdg.dbf';
  1333. recover datafile 14;
  1334. alter tablespace testdg online;


  1335. -- answer 2 dbms_file_transfer
  1336. create directory asmsrc as'+DATA/orclasm/datafile/';
  1337. create directory osdesc as '/home/oracle/';

  1338. alter tablespace testdg offline;
  1339.  
  1340. exec dbms_file_transfer.copy_file('ASMSRC','testdg.282.868891371','osdesc','testdg.dbf');

  1341. alter database rename file'+DATA/orclasm/datafile/testdg.282.868891371' to '/home/oracle/testdg.dbf';
  1342. alter tablespace testdg online ;
  1343.  


  1344. -- answer 3 mount
  1345. run{
  1346. shutdown immediate;
  1347. startup mount;
  1348. set newname for datafile 14 to '/home/oracle/testdg.dbf';
  1349. restore datafile 14;
  1350. switch datafile 14;
  1351. recover datafile 14;
  1352. alter database open;
  1353. }



  1354. -- answer 4 mount
  1355. run{
  1356. shutdown immediate;
  1357. startup mount;
  1358. backup as copy datafile 14 format '/home/oracle/testdg.dbf';
  1359. }

  1360. switch tablespace testdg to copy;
  1361. alter database open;



  1362. -- answer 5 cp

  1363. alter tablespace testdg offline;
  1364. [root@rhel6_lhr ~]# su - grid
  1365. ASMCMD> cp +DATA/orclasm/datafile/testdg.dbf /home/grid/testdg.dbf
  1366. copying +DATA/orclasm/datafile/testdg.dbf -> /home/grid/testdg.dbf
  1367. ASMCMD>

  1368. [root@rhel6_lhr ~]# cp /home/grid/testdg.dbf /home/oracle/testdg.dbf
  1369. [root@rhel6_lhr ~]# chown oracle:oinstall /home/oracle/testdg.dbf
  1370. [root@rhel6_lhr ~]#


  1371. alter database rename file'+DATA/orclasm/datafile/testdg.dbf' to '/home/oracle/testdg.dbf';
  1372. alter tablespace testdg online ;




  1373. create bigfile tablespace ts_dbm datafile '/home/oracle/ts_dbm01.dbf' size 10m autoextend on next 10M ;
  1374. alter user xxx default tablespace bbb;



  1375.  ------ smallfile tablespaces
  1376. 单个数据文件的大小由数据库block_size的尺寸决定,例如:
  1377. block_size =8K 对应单个数据文件最大为 32G
  1378. block_size =16K 对应单个据文件最大为 64G
  1379. block_size =32K 对应单个据文件最大为 128G


  1380.  ------Bigfile Tablespaces
  1381. block_size =8K 对应单个数据文件最大为 32T
  1382. block_size =16K 对应单个据文件最大为 64T
  1383. block_size =32K 对应单个据文件最大为 128T




  1384. ----如果删除表空间之前删除了表空间文件,解决办法:

  1385. 如果数据库已经启动,则需要先执行下面这行:
  1386. SQL> shutdown abort
  1387. SQL> startup mount
  1388. SQL> alter database datafile 'filename' offline drop;
  1389. SQL> alter database open;
  1390. SQL> drop tablespace tablespace_name including contents;


  1391. alter database datafile '/u02/oracle/oradata/user01.dbf' offline drop;
  1392. alter tablespace test drop datafile '+DATA/orclasm/datafile/test.274.907173619';
  1393.  


  1394. ------表空间默认类型
  1395. SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME like '%TBS%';
  1396. SQL> alter database set default bigfile tablespace;
  1397. --改回为缺省值
  1398. SQL> alter database set default smallfile tablespace;

  1399. ---控制文件
  1400. --alter system set control_files='/u01/app/oracle/oradata/control01.ctl', '/u01/app/oracle/oradata/control02.ctl','/u01/app/oracle/oradata/control03.ctl' scope=spfile;
  1401. alter database backup controlfile to trace as '/home/oracle/oracle_bk/coolbak/ctl.sql';
  1402. select * from v$controlfile_record_section;
  1403. --转储控制文件
  1404. alter system set events 'immediate trace name controlf level 12';
  1405. ---文件路径
  1406. SELECT d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
  1407.        p.spid || '.trc' trace_file_name
  1408.   FROM (SELECT p.spid
  1409.           FROM v$mystat m, v$session s, v$process p
  1410.          WHERE m.statistic# = '1'
  1411.            AND s.sid = m.sid
  1412.            AND p.addr = s.paddr) p,
  1413.        (SELECT t.instance
  1414.           FROM v$thread t, v$parameter v
  1415.          WHERE v.name = 'thread'
  1416.            AND (v.value = '0' OR to_char(t.thread#) = v.VALUE)) i,
  1417.        (SELECT VALUE FROM v$parameter WHERE NAME = 'user_dump_dest') d;


  1418. oradebug setmypid
  1419. SELECT a.SID,
  1420.        b.SERIAL# ,
  1421.        c.SPID ospid,
  1422.        c.pid orapid
  1423. FROM v$mystat a,
  1424.        v$session b ,
  1425.        v$process c
  1426. WHERE a.SID = b.SID
  1427. and b.PADDR=c.ADDR
  1428. AND rownum = 1;
  1429. oradebug dump controlf 12;


  1430. 16:09:17 SQL> oradebug setmypid
  1431. 已处理的语句
  1432. 16:09:55 SQL> oradebug tracefile_name
  1433. /u01/app/oracle/diag/rdbms/orclasm/orclasm/trace/orclasm_ora_21437.trc


  1434. oradebug event 1555 trace name errorstack level 3






  1435. 热备:
  1436.     alter database backup controlfile to '<dir>'; --热备份控制文件 alter database backup controlfile to '/home/oracle/ora_bk/control.bk';
  1437.     alter database backup controlfile to trace as '<dir>' ;--得到建立控制文件的脚本
  1438. RMAN:
  1439.     backup current controlfile format '/home/oracle/oracle_bk/orclasm/ctl_%d_%T_%s_%p.bak';
  1440.     backup database include current controlfile;
  1441.  -- 或者设置RMAN 为自动备份
  1442.    RMAN > configure controlfile autobackup on;


  1443. ----默认false 忽略一致性检察 隐含参数 隐藏
  1444. SELECT * FROM gv$parameter a WHERE a.NAME like '\_%' escape '\' ;
  1445. SELECT * FROM gv$parameter a WHERE a.NAME like '=_%' escape '=' ;

  1446. alter system set "_allow_resetlogs_corruption"=true scope=spfile;
  1447. alter system set "_allow_resetlogs_corruption"=false scope=spfile; --默认

  1448. alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';


  1449. SQL> show parameter _allow_resetlogs_corruption

  1450. NAME TYPE VALUE
  1451. ------------------------------------ ----------- ------------------------------
  1452. _allow_resetlogs_corruption boolean TRUE

  1453. set pagesize 9999
  1454. set line 9999
  1455. col NAME format a40
  1456. col KSPPDESC format a50
  1457. col KSPPSTVL format a20
  1458. SELECT a.INDX,
  1459.        a.KSPPINM NAME,
  1460.        a.KSPPDESC,
  1461.        b.KSPPSTVL
  1462. FROM x$ksppi a,
  1463.        x$ksppcv b
  1464. WHERE a.INDX = b.INDX
  1465. and lower(a.KSPPINM) like lower('%&parameter%');





  1466. alter system set "_allow_resetlogs_corruption"=true scope=spfile;
  1467. recover database using backup controlfile until cancel;
  1468. alter database open resetlogs;
  1469. startup force
  1470. alter database open resetlogs;
  1471. alter system set "_allow_resetlogs_corruption"=false scope=spfile;
  1472. alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';




  1473. ----------------incarnation
  1474. RMAN> list incarnation of database;
  1475. RMAN> reset database to incarnation 8;

  1476. SELECT * FROM V$DATABASE_INCARNATION;


  1477. alter system set log_archive_dest_1='LOCATION=/home/oracle' scope=spfile;



  1478. ---------- 重建控制文件
  1479. CREATE CONTROLFILE REUSE DATABASE "ORA11G" RESETLOGS DATAFILE '/u01/app/oracle/oradata/orcltest/system01.dbf';


  1480. STARTUP NOMOUNT
  1481. CREATE CONTROLFILE REUSE DATABASE "ORA11G" RESETLOGS ARCHIVELOG
  1482.     MAXLOGFILES 16
  1483.     MAXLOGMEMBERS 3
  1484.     MAXDATAFILES 100
  1485.     MAXINSTANCES 8
  1486.     MAXLOGHISTORY 292
  1487. LOGFILE
  1488.   GROUP 1 '/u02/app/oracle/oradata/orcltest/redo01.log' SIZE 50M BLOCKSIZE 512,
  1489.   GROUP 2 '/u02/app/oracle/oradata/orcltest/redo02.log' SIZE 50M BLOCKSIZE 512,
  1490.   GROUP 3 '/u02/app/oracle/oradata/orcltest/redo03.log' SIZE 50M BLOCKSIZE 512
  1491. -- STANDBY LOGFILE
  1492. DATAFILE
  1493.   '/u02/app/oracle/oradata/orcltest/system01.dbf',
  1494.   '/u02/app/oracle/oradata/orcltest/sysaux01.dbf',
  1495.   '/u02/app/oracle/oradata/orcltest/undotbs01.dbf',
  1496.   '/u02/app/oracle/oradata/orcltest/users01.dbf',
  1497.   '/u02/app/oracle/oradata/orcltest/example01.dbf'
  1498. CHARACTER SET ZHS16GBK
  1499. ;



  1500. select THREAD#, SEQUENCE#,FIRST_TIME from v$archived_log d where (( THREAD#=2 and SEQUENCE# between 10050 and 10060) or ( THREAD#=1 and SEQUENCE# between 9720 and 9725)) and d.DELETED!='YES' ORDER BY THREAD#, D.RECID;
  1501. run {
  1502.  allocate channel c1 type disk;
  1503.  allocate channel c2 type disk;
  1504.  startup force mount;
  1505.  sql 'alter session set NLS_DATE_FORMAT="YYYY-MM-DD HH24:mi:ss"';
  1506.  set until time = "to_date('2016-07-28 21:04:50','YYYY-MM-DD HH24:mi:ss')";
  1507.  restore database;
  1508.  recover database;
  1509.  release channel c1;
  1510.  release channel c2;
  1511. }

  1512. catalog start with '/u03/backup/' noprompt;



  1513. --restore Controlfile
  1514. DECLARE
  1515.  devtype varchar2(256);
  1516.  done boolean;
  1517.  BEGIN
  1518.  devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
  1519.  sys.dbms_backup_restore.restoreSetDatafile;
  1520.  sys.dbms_backup_restore.restoreControlfileTo(cfname=>'/tmp/2015_04_30/control01.ctl');
  1521.  sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/tmp/2015_04_30/o1_mf_annnn_TAG20150430T160239_bn3rdzd7_.bkp', params=>null);
  1522.  sys.dbms_backup_restore.deviceDeallocate;
  1523.  END;
  1524. /




  1525. --restore datafile
  1526. DECLARE
  1527.  devtype varchar2(256);
  1528.  done boolean;
  1529. BEGIN
  1530.  devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');
  1531.  sys.dbms_backup_restore.restoreSetDatafile;
  1532.  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'/u02/app/oracle/oradata/orcltest/system01.dbf');
  1533.  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'/u02/app/oracle/oradata/orcltest/sysaux01.dbf');
  1534.  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'/u02/app/oracle/oradata/orcltest/undotbs01.dbf');
  1535.  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'/u02/app/oracle/oradata/orcltest/users01.dbf');
  1536.  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'/u02/app/oracle/oradata/orcltest/example01.dbf');
  1537.  sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/tmp/2015_05_02/o1_mf_nnndf_TAG20150502T112355_bn8jtcsc_.bkp', params=>null);
  1538.  sys.dbms_backup_restore.deviceDeallocate;
  1539. END;
  1540. /

  1541. 注意:
  1542.  在multisection backup 的情况下,我们需要考虑所有的backuppiece(也就是所有的section),使用initmsr函数来restore datafile
  1543.  
  1544. DECLARE
  1545. devtype varchar2(256);
  1546. done boolean;
  1547. BEGIN
  1548. devtype := dbms_backup_restore.DeviceAllocate(type=>null, ident=>'d1');
  1549. dbms_backup_restore.RestoreSetDatafile;
  1550. dbms_backup_restore.initmsr(1,'/ud1001/PROD/oradata/system01-test.dbf');
  1551. dbms_backup_restore.RestoreDatafileTo(dfnumber => 1,toname => '/ud1001/PROD/oradata/system01-test.dbf');
  1552. dbms_backup_restore.RestoreBackupPiece(done => done,handle =>'/backup/Oracle-DB-8-7-2014/db_L0_PROD_e6pf7too_1_1.rman', params => null);
  1553. dbms_backup_restore.RestoreBackupPiece(done => done,handle =>'/backup/Oracle-DB-8-7-2014/db_L0_PROD_e6pf7too_2_1.rman', params => null);
  1554. END;
  1555. /
  1556.  


  1557. --restore archived redolog
  1558. DECLARE
  1559. devtype varchar2(256);
  1560. done boolean;
  1561. BEGIN
  1562. devtype := dbms_backup_restore.DeviceAllocate (type => '',ident => 'FUN');
  1563. dbms_backup_restore.RestoreSetArchivedLog(destination=>'D:\ORACLE_BASE\achive\');
  1564. dbms_backup_restore.RestoreArchivedLog(thread=>1,sequence=>1);
  1565. dbms_backup_restore.RestoreArchivedLog(thread=>1,sequence=>2);
  1566. dbms_backup_restore.RestoreArchivedLog(thread=>1,sequence=>3);
  1567. dbms_backup_restore.RestoreBackupPiece(done => done,handle => 'D:\ORACLE_BASE\RMAN_BACKUP\MYDB_LOG_BCK0DH1JGND_1_1', params => null);
  1568. dbms_backup_restore.DeviceDeallocate;
  1569. END;
  1570. /


  1571. --清除控制文件中关于v$archived_log的信息
  1572. SQL> execute sys.dbms_backup_restore.resetCfileSection(11);

  1573. --再次查询v$archived_log,信息已经被清除
  1574. SQL> select dest_id,sequence#,name,blocks from v$archived_log;

  1575. ---------------------------------------------------------------------------------------------------------------- 归档丢失
  1576. SQL> recover database ;
  1577. ORA-00279: change 1549336 generated at 01/15/2015 16:22:07 needed for thread 1
  1578. ORA-00289: suggestion :
  1579. /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_22_865253186.dbf
  1580. ORA-00280: change 1549336 for thread 1 is in sequence #22


  1581. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
  1582. cancel
  1583. Media recovery cancelled.
  1584. SQL> alter database open;
  1585. alter database open
  1586. *
  1587. ERROR at line 1:
  1588. ORA-01113: file 1 needs media recovery
  1589. ORA-01110: data file 1: '/u01/app/oracle/oradata/utf8test/system01.dbf'


  1590. SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;

  1591. System altered.

  1592. SQL> startup force;
  1593. ORACLE instance started.

  1594. Total System Global Area 1102344192 bytes
  1595. Fixed Size         2227584 bytes
  1596. Variable Size         738198144 bytes
  1597. Database Buffers     352321536 bytes
  1598. Redo Buffers         9596928 bytes
  1599. Database mounted.
  1600. ORA-01113: file 1 needs media recovery
  1601. ORA-01110: data file 1: '/u01/app/oracle/oradata/utf8test/system01.dbf'

  1602. ---- recover database using backup controlfile;
  1603. SQL> recover database until cancel;
  1604. ORA-00279: change 1549336 generated at 01/15/2015 16:22:07 needed for thread 1
  1605. ORA-00289: suggestion :
  1606. /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_22_865253186.dbf
  1607. ORA-00280: change 1549336 for thread 1 is in sequence #22


  1608. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
  1609. cancel
  1610. ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
  1611. ORA-01194: file 2 needs more recovery to be consistent
  1612. ORA-01110: data file 2: '/u01/app/oracle/oradata/utf8test/sysaux01.dbf'


  1613. ORA-01112: media recovery not started


  1614. SQL> alter database open resetlogs;
  1615. alter database open resetlogs
  1616. *
  1617. ERROR at line 1:
  1618. ORA-00603: ORACLE server session terminated by fatal error
  1619. ORA-00600: internal error code, arguments: [2662], [0], [1549349], [0],
  1620. [1550178], [12583040], [], [], [], [], [], []
  1621. ORA-00600: internal error code, arguments: [2662], [0], [1549348], [0],
  1622. [1550178], [12583040], [], [], [], [], [], []
  1623. ORA-01092: ORACLE instance terminated. Disconnection forced
  1624. ORA-00600: internal error code, arguments: [2662], [0], [1549346], [0],
  1625. [1550178], [12583040], [], [], [], [], [], []
  1626. Process ID: 7693
  1627. Session ID: 237 Serial number: 5


  1628. 退出,重新登录

  1629. SQL> exit
  1630. Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  1631. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  1632. [oracle@rhel6_lhr utf8test]$ sqlplus / as sysdba

  1633. SQL*Plus: Release 11.2.0.3.0 Production on Fri Jan 16 10:13:53 2015

  1634. Copyright (c) 1982, 2011, Oracle. All rights reserved.

  1635. Connected to an idle instance.

  1636. SQL> startup
  1637. ORACLE instance started.

  1638. Total System Global Area 1102344192 bytes
  1639. Fixed Size         2227584 bytes
  1640. Variable Size         738198144 bytes
  1641. Database Buffers     352321536 bytes
  1642. Redo Buffers         9596928 bytes
  1643. Database mounted.
  1644. Database opened.
  1645. ----------------------------------------------------------------------------------------------------------------

  1646. select * from v$fixed_view_definition a WHERE a.VIEW_NAME like 'X_$DIAG%' ;
  1647. SELECT * FROM V$FIXED_TABLE A WHERE A.NAME like 'X$DIAG%' ;



  1648. ------- 十进制转十六进制
  1649. select to_char(1985432,'xxxxxxxxxxxxxxx') FROM DUAL;
  1650. ------- 十六进制转十进制
  1651. select to_number('1e4b98','xxxxxxxxxxxxxxx') from dual;




  1652. --------------------------- exp和imp grant exp_full_database to lhr;
  1653. --EXP-00091的方法 select userenv('language') from dual; ---->>> NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
  1654. 或加上: STATISTICS=NONE

  1655. ------ query选项
  1656. exp \'/ AS SYSDBA\' tables=test_query_lhr file=/tmp/test_query_lhr_scott.dmp query=\" where owner=\'SCOTT\' \" log=/tmp/test_query_lhr_scott.log
  1657. [ZFZHLHRDB1:oracle]:/oracle>more /tmp/scottfile.par
  1658. query="where owner='SCOTT'"
  1659. [ZFZHLHRDB1:oracle]:/oracle> exp \'/ AS SYSDBA\' tables=test_query_lhr file=/tmp/test_query_lhr_scott_01.dmp parfile=/tmp/scottfile.par log=/tmp/test_query_lhr_scott_01.log

  1660. ------ parfile选项
  1661. [ZFZHLHRDB1:oracle]:/oracle>more /tmp/scottfile.par
  1662. tables=scott.emp,scott.dept
  1663. exp \'/ AS SYSDBA\' file=/tmp/test_query_lhr_scott_01.dmp parfile=/tmp/scottfile.par log=/tmp/test_query_lhr_scott_01.log




  1664. strace exp n1/n1 tables=scott.emp file=a.dmp


  1665. exp cnydm/cnydm@DATAWDB_125 file=d:/oracle_bk/cnydm20150402.dmp log=d:/oracle_bk/cnydm20150402.log buffer=50000000 tables=PRD_CTGRY_D,DSCNT_TP_D,MKT_AND_PRD_CTGRY_D,MKT_CTGRY_D
  1666. imp cnydm/cnydm@DATAWDB_125 file=d:/oracle_bk/cnydm20150402.dmp log=d:/oracle_bk/imp_cnydm20150402.log buffer=50000000 full=y



  1667. exp system/lhr file=E:\expfull.dmp full=y log=E:\expfull.log
  1668. imp system/lhr file=E:\expfull.dmp full=y log=E:\impfull.log

  1669. exp lhr/lhr@orclasm tables=xb_log_lhr,xb_a,xb_b file=e:\e1.dmp log=E:\exp_table.log buffer=41943040
  1670. imp lhr/lhr@winxp tables=xb_log_lhr file=e:\e1.dmp log=E:\exp_table.log buffer=41943040
  1671. imp lhr/lhr@orclasm tables=(emp,dept) file=d:\e1.dmp log=E:\exp_table_.log buffer=41943040



  1672. exp system/lhr file=E:\expfull2.dmp log=E:\expfull2.log owner=(lhrexp,lhrimp)
  1673. imp system/lhr file=E:\expfull2.dmp full=y log=E:\expfull2.log
  1674. imp "sys as sysdba" file=testmv_full.dmp full=y buffer=41943040 feedback=10000 log=testmv_full.log
  1675. imp user2/pwd fromuser=user1 touser=user2 file=/tmp/imp_db_pipe1 feedback=10000 buffer=41943040 log=testmv_full.log

  1676. 生产环境下,oracle 9I下sga大概8G,pga大概6g,需要导入一个2.7g以上的大表到成产库中,由于是同事着手运用imp工具的默认buffer=30K,用时大概一个小时还没有结果,考虑到pga还是很大的,跟同事商议加上buffer=409600000设置buffer大概400M的,15分钟内imp完成。当然运用impdp然后运用parallel=n效率当然更加理想了!


  1677. -------------------------------------------- 导出ASH视图的数据 ash数据
  1678. --- 方法1:ctas建表导出 有的客户不让建表
  1679. CREATE TABLE ASH_TEMP_20161117 NOLOGGING AS
  1680. SELECT *
  1681.   FROM DBA_HIST_ACTIVE_SESS_HISTORY D
  1682.  WHERE D.SAMPLE_TIME BETWEEN
  1683.        TO_DATE('2016-11-10 02:00:00', 'YYYY-MM-DD HH24:MI:SS') AND
  1684.        TO_DATE('2016-11-17 06:00:00', 'YYYY-MM-DD HH24:MI:SS')
  1685. ;

  1686. exp \'/ AS SYSDBA\' tables=ASH_TEMP_20161117 file=/tmp/ASH_TEMP_20161117.dmp log=/tmp/ASH_TEMP_20161117.log buffer=41943040
  1687. imp lhr/lhr tables=ASH_TEMP_20161117 file=/tmp/ASH_TEMP_20161117.dmp log=/tmp/imp_ASH_TEMP_20161117.log buffer=41943040


  1688. --- 方法2:导出基表的数据
  1689. ---more /tmp/exp_ash_lhr_01.par
  1690. query="WHERE SAMPLE_TIME BETWEEN TO_DATE('2016-12-02 08:30:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('2016-12-08 23:38:00', 'YYYY-MM-DD HH24:MI:SS')"

  1691. exp \'/ AS SYSDBA\' tables='WRH$_ACTIVE_SESSION_HISTORY' file=/tmp/exp_ash_lhr_01.dmp parfile=/tmp/exp_ash_lhr_01.par log=/tmp/exp_ash_lhr_01.log GRANTS=N CONSTRAINTS=N STATISTICS=NONE
  1692. exp \'/ AS SYSDBA\' tables='WRM$_SNAPSHOT','WRH$_EVENT_NAME','WRH$_SQLCOMMAND_NAME','WRH$_PLAN_OPERATION_NAME','WRH$_PLAN_OPTION_NAME','WRH$_TOPLEVELCALL_NAME' file=/tmp/exp_ash_lhr_02.dmp log=/tmp/exp_ash_lhr_02.log GRANTS=N CONSTRAINTS=N STATISTICS=NONE

  1693. imp lhr/lhr file=/tmp/exp_ash_lhr_01.dmp tables='WRH$_ACTIVE_SESSION_HISTORY' log=/tmp/imp_ash_lhr_01.log FROMUSER=SYS TOUSER=LHR
  1694. imp lhr/lhr file=/tmp/exp_ash_lhr_02.dmp tables='WRM$_SNAPSHOT','WRH$_EVENT_NAME','WRH$_SQLCOMMAND_NAME','WRH$_PLAN_OPERATION_NAME','WRH$_PLAN_OPTION_NAME','WRH$_TOPLEVELCALL_NAME' log=/tmp/imp_ash_lhr_02.log FROMUSER=SYS TOUSER=LHR


  1695. DROP TABLE LHR.WRH$_ACTIVE_SESSION_HISTORY PURGE;
  1696. DROP TABLE LHR.WRM$_SNAPSHOT PURGE;
  1697. DROP TABLE LHR.WRH$_EVENT_NAME PURGE;
  1698. DROP TABLE LHR.WRH$_SQLCOMMAND_NAME PURGE;
  1699. DROP TABLE LHR.WRH$_PLAN_OPERATION_NAME PURGE;
  1700. DROP TABLE LHR.WRH$_PLAN_OPTION_NAME PURGE;
  1701. DROP TABLE LHR.WRH$_TOPLEVELCALL_NAME PURGE;

  1702. create or replace view dh_ash_11g_lhr
  1703. (snap_id, dbid, instance_number, sample_id, sample_time, session_id, session_serial#, session_type, flags, user_id, sql_id, is_sqlid_current, sql_child_number, sql_opcode, sql_opname, force_matching_signature, top_level_sql_id, top_level_sql_opcode, sql_plan_hash_value, sql_plan_line_id, sql_plan_operation, sql_plan_options, sql_exec_id, sql_exec_start, plsql_entry_object_id, plsql_entry_subprogram_id, plsql_object_id, plsql_subprogram_id, qc_instance_id, qc_session_id, qc_session_serial#, px_flags, event, event_id, seq#, p1text, p1, p2text, p2, p3text, p3, wait_class, wait_class_id, wait_time, session_state, time_waited, blocking_session_status, blocking_session, blocking_session_serial#, blocking_inst_id, blocking_hangchain_info, current_obj#, current_file#, current_block#, current_row#, top_level_call#, top_level_call_name, consumer_group_id, xid, remote_instance#, time_model, in_connection_mgmt, in_parse, in_hard_parse, in_sql_execution, in_plsql_execution, in_plsql_rpc, in_plsql_compilation, in_java_execution, in_bind, in_cursor_close, in_sequence_load, capture_overhead, replay_overhead, is_captured, is_replayed, service_hash, program, module, action, client_id, machine, port, ecid, dbreplay_file_id, dbreplay_call_counter, tm_delta_time, tm_delta_cpu_time, tm_delta_db_time, delta_time, delta_read_io_requests, delta_write_io_requests, delta_read_io_bytes, delta_write_io_bytes, delta_interconnect_io_bytes, pga_allocated, temp_space_allocated)
  1704. as
  1705. select /* ASH/AWR meta attributes */
  1706.        ash.snap_id, ash.dbid, ash.instance_number,
  1707.        ash.sample_id, ash.sample_time,
  1708.        /* Session/User attributes */
  1709.        ash.session_id, ash.session_serial#,
  1710.        decode(ash.session_type, 1,'FOREGROUND', 'BACKGROUND'),
  1711.        ash.flags,
  1712.        ash.user_id,
  1713.        /* SQL attributes */
  1714.        ash.sql_id,
  1715.        decode(bitand(ash.flags, power(2, 4)), NULL, 'N', 0, 'N', 'Y'),
  1716.        ash.sql_child_number, ash.sql_opcode,
  1717.        (select command_name from WRH$_SQLCOMMAND_NAME
  1718.         where command_type = ash.sql_opcode
  1719.         and dbid = ash.dbid) as sql_opname,
  1720.        ash.force_matching_signature,
  1721.        decode(ash.top_level_sql_id, NULL, ash.sql_id, ash.top_level_sql_id),
  1722.        decode(ash.top_level_sql_id, NULL, ash.sql_opcode,
  1723.               ash.top_level_sql_opcode),
  1724.        /* SQL Plan/Execution attributes */
  1725.        ash.sql_plan_hash_value,
  1726.        decode(ash.sql_plan_line_id, 0, to_number(NULL), ash.sql_plan_line_id),
  1727.        (select operation_name from WRH$_PLAN_OPERATION_NAME
  1728.         where operation_id = ash.sql_plan_operation#
  1729.           and dbid = ash.dbid) as sql_plan_operation,
  1730.        (select option_name from WRH$_PLAN_OPTION_NAME
  1731.         where option_id = ash.sql_plan_options#
  1732.           and dbid = ash.dbid) as sql_plan_options,
  1733.        decode(ash.sql_exec_id, 0, to_number(NULL), ash.sql_exec_id),
  1734.        ash.sql_exec_start,
  1735.        /* PL/SQL attributes */
  1736.        decode(ash.plsql_entry_object_id,0,to_number(NULL),
  1737.               ash.plsql_entry_object_id),
  1738.        decode(ash.plsql_entry_object_id,0,to_number(NULL),
  1739.               ash.plsql_entry_subprogram_id),
  1740.        decode(ash.plsql_object_id,0,to_number(NULL),
  1741.               ash.plsql_object_id),
  1742.        decode(ash.plsql_object_id,0,to_number(NULL),
  1743.               ash.plsql_subprogram_id),
  1744.        /* PQ attributes */
  1745.        decode(ash.qc_session_id, 0, to_number(NULL), ash.qc_instance_id),
  1746.        decode(ash.qc_session_id, 0, to_number(NULL), ash.qc_session_id),
  1747.        decode(ash.qc_session_id, 0, to_number(NULL), ash.qc_session_serial#),
  1748.        decode(ash.px_flags, 0, to_number(NULL), ash.px_flags),
  1749.        /* Wait event attributes */
  1750.        decode(ash.wait_time, 0, evt.event_name, NULL),
  1751.        decode(ash.wait_time, 0, evt.event_id, NULL),
  1752.        ash.seq#,
  1753.        evt.parameter1, ash.p1,
  1754.        evt.parameter2, ash.p2,
  1755.        evt.parameter3, ash.p3,
  1756.        decode(ash.wait_time, 0, evt.wait_class, NULL),
  1757.        decode(ash.wait_time, 0, evt.wait_class_id, NULL),
  1758.        ash.wait_time,
  1759.        decode(ash.wait_time, 0, 'WAITING', 'ON CPU'),
  1760.        ash.time_waited,
  1761.        (case when ash.blocking_session = 4294967295
  1762.                then 'UNKNOWN'
  1763.              when ash.blocking_session = 4294967294
  1764.                then 'GLOBAL'
  1765.              when ash.blocking_session = 4294967293
  1766.                then 'UNKNOWN'
  1767.              when ash.blocking_session = 4294967292
  1768.                then 'NO HOLDER'
  1769.              when ash.blocking_session = 4294967291
  1770.                then 'NOT IN WAIT'
  1771.              else 'VALID'
  1772.         end),
  1773.        (case when ash.blocking_session between 4294967291 and 4294967295
  1774.                then to_number(NULL)
  1775.              else ash.blocking_session
  1776.         end),
  1777.        (case when ash.blocking_session between 4294967291 and 4294967295
  1778.                then to_number(NULL)
  1779.              else ash.blocking_session_serial#
  1780.         end),
  1781.        (case when ash.blocking_session between 4294967291 and 4294967295
  1782.                then to_number(NULL)
  1783.              else ash.blocking_inst_id
  1784.           end),
  1785.        (case when ash.blocking_session between 4294967291 and 4294967295
  1786.                then NULL
  1787.              else decode(bitand(ash.flags, power(2, 3)), NULL, 'N',
  1788.                          0, 'N', 'Y')
  1789.           end),
  1790.        /* Session's working context */
  1791.        ash.current_obj#, ash.current_file#, ash.current_block#,
  1792.        ash.current_row#, ash.top_level_call#,
  1793.        (select top_level_call_name from WRH$_TOPLEVELCALL_NAME
  1794.         where top_level_call# = ash.top_level_call#
  1795.         and dbid = ash.dbid) as top_level_call_name,
  1796.        decode(ash.consumer_group_id, 0, to_number(NULL),
  1797.               ash.consumer_group_id),
  1798.        ash.xid,
  1799.        decode(ash.remote_instance#, 0, to_number(NULL), ash.remote_instance#),
  1800.        ash.time_model,
  1801.        decode(bitand(ash.time_model,power(2, 3)),0,'N','Y')
  1802.                                                          as in_connection_mgmt,
  1803.        decode(bitand(ash.time_model,power(2, 4)),0,'N','Y')as in_parse,
  1804.        decode(bitand(ash.time_model,power(2, 7)),0,'N','Y')as in_hard_parse,
  1805.        decode(bitand(ash.time_model,power(2,10)),0,'N','Y')as in_sql_execution,
  1806.        decode(bitand(ash.time_model,power(2,11)),0,'N','Y')
  1807.                                                          as in_plsql_execution,
  1808.        decode(bitand(ash.time_model,power(2,12)),0,'N','Y')as in_plsql_rpc,
  1809.        decode(bitand(ash.time_model,power(2,13)),0,'N','Y')
  1810.                                                        as in_plsql_compilation,
  1811.        decode(bitand(ash.time_model,power(2,14)),0,'N','Y')
  1812.                                                        as in_java_execution,
  1813.        decode(bitand(ash.time_model,power(2,15)),0,'N','Y')as in_bind,
  1814.        decode(bitand(ash.time_model,power(2,16)),0,'N','Y')as in_cursor_close,
  1815.        decode(bitand(ash.time_model,power(2,17)),0,'N','Y')as in_sequence_load,
  1816.        decode(bitand(ash.flags,power(2,5)),NULL,'N',0,'N','Y')
  1817.                                                        as capture_overhead,
  1818.        decode(bitand(ash.flags,power(2,6)), NULL,'N',0,'N','Y' )
  1819.                                                            as replay_overhead,
  1820.        decode(bitand(ash.flags,power(2,0)),NULL,'N',0,'N','Y') as is_captured,
  1821.        decode(bitand(ash.flags,power(2,2)), NULL,'N',0,'N','Y' )as is_replayed,
  1822.        /* Application attributes */
  1823.        ash.service_hash, ash.program,
  1824.        ash.module module,
  1825.        ash.action action,
  1826.        ash.client_id,
  1827.        ash.machine, ash.port, ash.ecid,
  1828.        /* DB Replay info */
  1829.        ash.dbreplay_file_id, ash.dbreplay_call_counter,
  1830.        /* stash columns */
  1831.        ash.tm_delta_time,
  1832.        ash.tm_delta_cpu_time,
  1833.        ash.tm_delta_db_time,
  1834.        ash.delta_time,
  1835.        ash.delta_read_io_requests,
  1836.        ash.delta_write_io_requests,
  1837.        ash.delta_read_io_bytes,
  1838.        ash.delta_write_io_bytes,
  1839.        ash.delta_interconnect_io_bytes,
  1840.        ash.pga_allocated,
  1841.        ash.temp_space_allocated
  1842. from WRM$_SNAPSHOT sn, WRH$_ACTIVE_SESSION_HISTORY ash, WRH$_EVENT_NAME evt
  1843. where ash.snap_id = sn.snap_id(+)
  1844.       and ash.dbid = sn.dbid(+)
  1845.       and ash.instance_number = sn.instance_number(+)
  1846.       and ash.dbid = evt.dbid
  1847.       and ash.event_id = evt.event_id;


  1848. ----以下数据不能导出
  1849. SELECT * FROM sys.Ku_Noexp_View d WHERE d.name LIKE '%WRH%' ;
  1850. SELECT * FROM DBA_OBJECTS d WHERE d.ORACLE_MAINTAINED='Y' AND D.object_name LIKE 'WR%';




  1851. -------------------默认用户

  1852. SELECT d.username,d.default_tablespace,d.account_status, 'create user '|| d.username|| ' identified by '|| d.username ||' default tablespace '||d.default_tablespace||';' FROM dba_users d WHERE d.username not in ('ANONYMOUS','APEX_030200','APEX_PUBLIC_USER','APPQOSSYS','BI','CTXSYS','DBSNMP','DIP','DMSYS','DVSYS','EXFSYS','FLOWS_FILES','HR','IX','LBACSYS','MDDATA','MDSYS','MGMT_VIEW','OE','OLAPSYS','ORACLE_OCM','ORDDATA','ORDPLUGINS','ORDSYS','OUTLN','OWBSYS','OWBSYS_AUDIT','PM','REMOTE_SCHEDULER_AGENT','SCOTT','SH','SI_INFORMATN_SCHEMA','SI_INFORMTN_SCHEMA','SPATIAL_CSW_ADMIN_USR','SPATIAL_WFS_ADMIN_USR','SYS','SYSMAN','SYSTEM','TSMSYS','WK_TEST','WKPROXY','WKSYS','WMSYS','XDB','XS$NULL','CSMIG');




  1853. -------------------------------------expdp和impdp 数据泵
  1854. `date +%Y%m%d`
  1855. %date:~0,4%%date:~5,2%%date:~8,2%

  1856. set CurDate=%date:~0,4%%date:~5,2%%date:~8,2%
  1857. set hh=%time:~0,2%
  1858. if /i %hh% LSS 10 ( set hh=0%time:~1,1%)
  1859. set ms=%time:~3,2%%time:~6,2%
  1860. set my_date=%CurDate%%hh%%ms%

  1861. grant read,write on directory DATA_PUMP_DIR to LHR;

  1862. windows下用:expdp \"/ AS SYSDBA\"


  1863. -------------导出到服务端
  1864. expdp scott/tiger@orclasm directory=DATA_PUMP_DIR TABLES=EMP,DEPT dumpfile=expdp_by_lhr_`date +%Y%m%d`.dmp LOGFILE=expdp_by_lhr_`date +%Y%m%d`.log
  1865. expdp scott/tiger@orclasm directory=DATA_PUMP_DIR TABLES=EMP,DEPT dumpfile=expdp_by_lhr_%date:~0,4%%date:~5,2%%date:~8,2%.dmp LOGFILE=expdp_by_lhr_%date:~0,4%%date:~5,2%%date:~8,2%.log


  1866. --表级别
  1867. expdp lhr/lhr@orclasm directory=DATA_PUMP_DIR dumpfile=exptable.dmp TABLES=TEST_TSPITR2,TEST_TSPITR3 LOGFILE=expdp_table.log
  1868. expdp scott/tiger@orclasm directory=DATA_PUMP_DIR dumpfile=exptable.dmp TABLES=EMP,DEPT LOGFILE=expdp_table.log
  1869. expdp system/lhr@orclasm DIRECTORY=DATA_PUMP_DIR DUMPFILE=exp_tab.dmp LOGFILE=exp_tab.log SCHEMAS=scott INCLUDE=TABLE:\"IN ('EMP', 'DEPT')\"
  1870. impdp lhr/lhr@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp LOGFILE=impdp_table.log

  1871. --schema级别
  1872. expdp lhr/lhr@orclasm directory=DATA_PUMP_DIR dumpfile=HR.dmp SCHEMAS=HR,SCOTT,TESTUSER LOGFILE=HR.log
  1873. expdp system/oracle@orcl DIRECTORY=DATA_DUMP_DIR DUMPFILE=test_20140324.DMP SCHEMAS=test logfile=test_expdp_20111014.log status=10 parallel=4 CONTENT=ALL COMPRESSION=ALL
  1874. impdp lhr/lhr@orclasm directory=DATA_PUMP_DIR dumpfile=HR.dmp SCHEMAS=HR,SCOTT,TESTUSER parallel=4 LOGFILE=HR_20151125.log




  1875. --整个数据库
  1876. expdp SYSTEM/ORACLE@ORCL DIRECTORY=DATA_DUMP_DIR DUMPFILE=TEST_20140324.DMP SCHEMAS=TEST LOGFILE=TEST_EXPDP_20111014.LOG STATUS=10 PARALLEL=1 CONTENT=ALL FLASHBACK_SCN=18341888 COMPRESSION=ALL
  1877. expdp \'/ AS SYSDBA\' DIRECTORY=DATA_DUMP_DIR FULL=Y DUMPFILE=FULLEXP.DMP LOGFILE=FULLEXP.LOG PARALLEL=2
  1878. impdp \'/ AS SYSDBA\' DIRECTORY=DATA_DUMP_DIR FULL=Y DUMPFILE=FULLEXP.DMP LOGFILE=FULLIMP.LOG PARALLEL=2  TABLE_EXISTS_ACTION=REPLACE EXCLUDE=STATISTICS,SCHEMA,TABLESPACE,ROLE,DIRECTORY,CONTEXT,PROFILE
  1879. impdp LHR/LHR@ORCLASM DIRECTORY=DATA_PUMP_DIR DUMPFILE=HR.DMP SCHEMAS=HR,SCOTT,TESTUSER PARALLEL=4 LOGFILE=HR_20151125.LOG


  1880. expdp SYSTEM/LHR DIRECTORY=DATA_PUMP_DIR DUMPFILE=EXPDP_FULL_20150417.DMP FULL=Y LOGFILE=EXPDP_FULL_20150417.LOG EXCLUDE=STATISTICS
  1881. impdp SYSTEM/LHR DIRECTORY=DATA_PUMP_DIR DUMPFILE=EXPDP_FULL_20150417.DMP FULL=Y LOGFILE=IMPDP_FULL_20150417.LOG PARALLEL=4 EXCLUDE=STATISTICS:"IN('')"


  1882. ORACLE_SID=ORA1024G
  1883. impdp \"/ AS SYSDBA\" DIRECTORY=DATA_PUMP_DIR DUMPFILE=EXPDP_FULL_20150417.DMP FULL=Y LOGFILE=IMPDP_FULL_20150417.LOG JOB_NAME=IMPDP_LHR EXCLUDE=SCHEMA,TABLESPACE,ROLE,DIRECTORY, CONTEXT,PROFILE PARALLEL=2 TABLE_EXISTS_ACTION=REPLACE
  1884. impdp \"/ AS SYSDBA\" DIRECTORY=DATA_PUMP_DIR DUMPFILE=EXPDP_FULL_20150417.DMP FULL=Y LOGFILE=IMPDP_FULL_20150417.LOG JOB_NAME=IMPDP_LHR EXCLUDE=TABLESPACE,ROLE,DIRECTORY, CONTEXT,PROFILE,USER,SCHEMA:"\=\'SYS'",SCHEMA:"\=\'IX'" PARALLEL=2 TABLE_EXISTS_ACTION=REPLACE



  1885. ------ query选项
  1886. [ZFZHLHRDB1:oracle]:/oracle>more /tmp/scottfile.par
  1887. query=SCOTT.EMP:"WHERE DEPTNO=20",SCOTT.DEPT:"WHERE DNAME='SALES'"
  1888. [ZFZHLHRDB1:oracle]:/oracle> expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT dumpfile=test_query_lhr_scott_02.dmp parfile=/tmp/scottfile.par log=test_query_lhr_scott_02.log

  1889. ----- include
  1890. expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT dumpfile=test_include_lhr_scott_03.dmp logfile=test_include_lhr_scott_03.log job_name=my_job_lhr include=procedure,function,sequence:"like '%TEST%'"


  1891. include=procedure,function,sequence:"like '%TEST%'"

  1892. include=procedure
  1893. include=function
  1894. include=sequence:"like '%TEST%'"
  1895. expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT dumpfile=test_include_lhr_scott_05.dmp logfile=test_include_lhr_scott_05.log job_name=my_job_lhr parfile=/tmp/parfile.par

  1896. expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT dumpfile='expdp_by_lhr_%date:~0,4%%date:~5,2%%date:~8,2%.dmp' LOGFILE='expdp_by_lhr_%date:~0,4%%date:~5,2%%date:~8,2%.log' job_name=my_job_lhr parfile=/tmp/parfile.par

  1897. -------- trace
  1898. expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT dumpfile=test_query_lhr_scott_02.dmp parfile=/tmp/scottfile.par log=test_query_lhr_scott_02.log trace=4a0300




  1899. ---------导出到本地
  1900. expdp lhr/lhr@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp TABLES=xb_log_lhr network_link=dblk_orclasm LOGFILE=expdp_table.log
  1901. impdp lhr/lhr@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp LOGFILE=impdp_table.log


  1902. ---- 直接导入 不生成文件
  1903. impdp lhr/lhr@orclxp network_link=dblk_orclasm directory=DATA_PUMP_DIR TABLES=xb_log_lhr PARALLEL=2 LOGFILE=impdp_table.log



  1904. ---- 生成ddl语句 不会导入数据
  1905. --expdp \'/ AS SYSDBA\' tables=lhr.exptest directory=DATA_PUMP_DIR dumpfile=exptest.dmp logfile=exp_exptest.dmp EXCLUDE=STATISTICS
  1906. --expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR dumpfile=lhrsql20161215.dmp logfile=lhrsql20161215.log content=metadata_only schemas=SCOTT EXCLUDE=STATISTICS
  1907. impdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR dumpfile=lhrsql20161215.dmp logfile=imp_exptest.log sqlfile=exptest.sql


  1908. exp \'/ AS SYSDBA\' tables=scott.emp file=/tmp/exp_ddl_lhr_01.dmp log=/tmp/exp_table.log buffer=41943040 rows=n compress=n
  1909. imp \'/ AS SYSDBA\' file=/tmp/exp_ddl_lhr_01.dmp show=y log=/tmp/get_ddl.sql buffer=20480000 full=y

  1910. set pagesize 0
  1911. set trimspool ON
  1912. SET linesize 10000
  1913. set long 90000
  1914. set feedback OFF
  1915. set feed off;
  1916. set echo off
  1917. spool schema_scott.sql
  1918. SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.OBJECT_NAME,U.owner)
  1919. FROM DBA_OBJECTS U
  1920. WHERE U.OBJECT_TYPE IN ('TABLE', 'INDEX', 'PROCEDURE', 'FUNCTION','PACKAGE','TRIGGER')
  1921. AND U.owner='SCOTT';
  1922. spool off;


  1923. ----只导出表结构
  1924. expdp lhr/lhr directory=DATA_PUMP_DIR dumpfile=lhrsql20150515.dmp logfile=lhrsql20150515.log content=metadata_only schemas=TEST,SQCHECK,DWUSER
  1925. impdp lhr/lhr directory=DATA_PUMP_DIR dumpfile=lhrsql20150515.dmp logfile=imp_exptest.log sqlfile=lhrsql20150515.sql
  1926. impdp lhr/lhr directory=DATA_PUMP_DIR dumpfile=lhrsql20150515.dmp logfile=lhrsql20150515_imp.log
  1927. impdp lhr/lhr directory=DATA_PUMP_DIR dumpfile=lhrsql20150515.dmp logfile=imp_exptest.log TRANSFORM=storage:n TRANSFORM=SEGMENT_CREATION:n
  1928. impdp lhr/lhr directory=DATA_PUMP_DIR dumpfile=lhrsql20150515.dmp logfile=imp_exptest.log sqlfile=lhrsql20150515.sql TRANSFORM=segment_attributes:n
  1929. --transform=segment_attributes|storage|SEGMENT_CREATION|oid|pctspace:Y/N:object_type



  1930. ----修改对象schema和tablespace
  1931. impdp test/test directory=exp_dump dumpfile=test.dmp logfile=test.log remap_schema=test1:test2 remap_tablespace=TBS_DAT_1:TBS_DAT_2,TBS_IDX_1:TBS_IDX_2
  1932. impdp test/test directory=exp_dump dumpfile=test.dmp logfile=test.log remap_schema=test1:test2 remap_tablespace=TBS_DAT_1:TBS_DAT_2 remap_tablespace=TBS_IDX_1:TBS_IDX_2




  1933. ----显示时间
  1934. expdp SCOTT/tiger@orclasm DIRECTORY=DATA_PUMP_DIR DUMPFILE=SCOTT%U.dmp SCHEMAS=SCOTT COMPRESSION=all metrics=y

  1935. --dmp文件重用 reuse_dumpfiles=y
  1936. expdp \''sys/"l@h\r/0"'@LHRDB as sysdba\' DIRECTORY=DATA_PUMP_DIR DUMPFILE=dmp_SCOTT.dmp SCHEMAS=SCOTT reuse_dumpfiles=y


  1937. #scp -r root@10.0.24.103:/home2/backup/ /home/mover00/shadow_bak/sites/
  1938. 拷贝远程(10.0.24.103)的/home2/backup/ 到本地的 /home/mover00/shadow_bak/sites/

  1939. #scp -r /home2/backup/ root@10.0.24.99:/home/mover00/shadow_bak/sites/
  1940. 拷贝本地的/home2/backup/ 到远程(10.0.24.99)的 /home/mover00/shadow_bak/sites/




  1941. set line 9999
  1942. col owner_name for a10
  1943. col job_name for a25
  1944. col operation for a10
  1945. col job_mode for a10
  1946. col state for a15
  1947. col job_mode for a10
  1948. col state for a15
  1949. col osuser for a10
  1950. col "degree|attached|datapump" for a25
  1951. col session_info for a20
  1952. SELECT s.inst_id,
  1953.        dj.owner_name,
  1954.        dj.job_name,
  1955.        dj.operation,
  1956.        dj.job_mode,
  1957.        dj.state,
  1958.        dj.degree || ',' || dj.attached_sessions || ',' ||
  1959.        dj.datapump_sessions "degree|attached|datapump",
  1960.        ds.session_type,
  1961.        s.osuser,
  1962.        (SELECT s.SID || ',' || s.SERIAL# || ',' || p.SPID
  1963.           FROM gv$process p
  1964.          where s.paddr = p.addr
  1965.            AND s.inst_id = p.inst_id) session_info
  1966.   FROM DBA_DATAPUMP_JOBS dj --gv$datapump_job
  1967.   full outer join dba_datapump_sessions ds --gv$datapump_session
  1968.     on (dj.job_name = ds.job_name and dj.owner_name = ds.owner_name)
  1969.   left outer join gv$session s
  1970.     on (s.saddr = ds.saddr)
  1971.  ORDER BY dj.owner_name, dj.job_name;




  1972. select * from GV$DATAPUMP_SESSION;
  1973. select * from GV$datapump_jobs;
  1974. select * From dba_datapump_jobs;


  1975. impdp \"/ as sysdba\" attach=IMPDP_LHR


  1976. ------------- parfile
  1977. [root@rhel6_lhr dpdump]# more par.f
  1978. DUMPFILE=EXPDAT.DMP
  1979. DIRECTORY=DATA_PUMP_DIR
  1980. TRANSPORT_DATAFILES=
  1981. /u01/app/oracle/admin/orclasm/dpdump/APP1TBS.DBF,
  1982. /u01/app/oracle/admin/orclasm/dpdump/APP2TBS.DBF,
  1983. /u01/app/oracle/admin/orclasm/dpdump/IDXTBS.DBF
  1984. LOGFILE=tts_import.log
  1985. [root@rhel6_lhr dpdump]#

  1986. [oracle@rhel6 ~]$ impdp system/lhr parfile='/u01/app/oracle/admin/orclasm/dpdump/par.f'




  1987. ----查看用户的目录权限
  1988. column grantee format a10
  1989. column grantor format a10
  1990. column dir_name format a20
  1991. column dir_path format a50
  1992. column privilege format a10

  1993. break on dir_name
  1994. select
  1995.     d.directory_name dir_name,
  1996.     d.directory_path dir_path,
  1997.     p.privilege,
  1998.     p.grantee,
  1999.     p.grantor
  2000. from
  2001.     dba_tab_privs p,
  2002.     dba_directories d
  2003. where
  2004.     p.table_name = d.directory_name and
  2005.     p.grantee = upper('&user')
  2006. order by
  2007.     d.directory_name,
  2008.     p.privilege
  2009. /


  2010.  
  2011. CREATE USER LHRSYS IDENTIFIED BY LHRSYS;
  2012. GRANT UPDATE (ENAME,SAL) ON SCOTT.EMP TO LHRSYS;
  2013. GRANT UPDATE (ENAME) ON SCOTT.EMP TO LHRSYS;
  2014. GRANT SELECT ON SCOTT.EMP TO LHRSYS;
  2015. GRANT CONNECT TO LHRSYS;
  2016. GRANT CREATE JOB TO LHRSYS;

  2017. SELECT * FROM DBA_COL_PRIVS D WHERE D.GRANTEE='LHRSYS';
  2018. SELECT * FROM DBA_TAB_PRIVS D WHERE D.GRANTEE='LHRSYS';
  2019. SELECT * FROM DBA_SYS_PRIVS D WHERE D.GRANTEE='LHRSYS';
  2020. SELECT * FROM DBA_ROLE_PRIVS D WHERE D.GRANTEE='LHRSYS';




  2021. --查看创建表SQL语句:
  2022. SELECT DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT') FROM DUAL;
  2023. SELECT DBMS_METADATA.GET_DDL('TABLE',U.TABLE_NAME) FROM USER_TABLES U;
  2024. --查看创建索引的SQL语句:
  2025. SELECT DBMS_METADATA.GET_DDL('INDEX','PK_DEPT','SCOTT') FROM DUAL;
  2026. SELECT DBMS_METADATA.GET_DDL('INDEX',U.INDEX_NAME) FROM USER_INDEXES U;
  2027. --查看创建主键的SQL语句:
  2028. SELECT DBMS_METADATA.GET_DDL('CONSTRAINT','EMP_PK') FROM DUAL;
  2029. --查看创建外键的SQL语句:
  2030. SELECT DBMS_METADATA.GET_DDL('REF_CONSTRAINT','EMP_FK_DEPT') FROM DUAL;
  2031. --查看创建视图(VIEW)的SQL语句:
  2032. SELECT DBMS_METADATA.GET_DDL('VIEW', 'MY_TABLES','SCOTT') FROM DUAL;
  2033. SELECT DBMS_METADATA.GET_DDL('VIEW', U.OBJECT_NAME)
  2034.   FROM USER_OBJECTS U
  2035.  WHERE OBJECT_TYPE = 'VIEW';
  2036. SELECT TEXT FROM USER_VIEWS WHERE VIEW_NAME=UPPER('&VIEW_NAME');
  2037. --查看创建存储过程(PROCEDURE)的SQL语句:
  2038. SELECT DBMS_METADATA.GET_DDL('PROCEDURE', U.OBJECT_NAME)
  2039.   FROM USER_OBJECTS U
  2040.  WHERE OBJECT_TYPE = 'PROCEDURE';
  2041. --查看创建触发器(TRIGGER)的SQL语句:
  2042. SELECT DBMS_METADATA.GET_DDL('TRIGGER', U.OBJECT_NAME)
  2043.   FROM USER_OBJECTS U
  2044.  WHERE OBJECT_TYPE = 'TRIGGER';
  2045. --查看创建函数(FUNCTION)的SQL语句:
  2046. SELECT DBMS_METADATA.GET_DDL('FUNCTION', U.OBJECT_NAME)
  2047.   FROM USER_OBJECTS U
  2048.  WHERE OBJECT_TYPE = 'FUNCTION';
  2049. --查看创建包(PACKAGE)的SQL语句:
  2050. SELECT DBMS_METADATA.GET_DDL('PACKAGE', U.OBJECT_NAME)
  2051.   FROM USER_OBJECTS U
  2052.  WHERE OBJECT_TYPE = 'PACKAGE';
  2053. --查看创建序列(SEQUENCE)的SQL语句:
  2054. SELECT DBMS_METADATA.GET_DDL('SEQUENCE', U.OBJECT_NAME)
  2055.   FROM USER_OBJECTS U
  2056.  WHERE OBJECT_TYPE = 'SEQUENCE';
  2057. --查看创建同义词(SYNONYM)的SQL语句:
  2058. SELECT DBMS_METADATA.GET_DDL('SYNONYM', U.OBJECT_NAME)
  2059.   FROM USER_OBJECTS U
  2060.  WHERE OBJECT_TYPE = 'SYNONYM';
  2061. --查看创建表空间(TABLESPACE)的SQL语句:
  2062. SELECT DBMS_METADATA.GET_DDL('TABLESPACE', U.TABLESPACE_NAME)
  2063.   FROM USER_TABLESPACES U;
  2064. --查看创建角色(ROLE)的SQL语句:
  2065. SELECT DBMS_METADATA.GET_DDL('ROLE', U.ROLE) FROM DBA_ROLES U;
  2066. --查看创建用户(USER)的SQL语句:
  2067. SELECT DBMS_METADATA.GET_DDL('USER','SYS') FROM DUAL;

  2068. ------------------------- 得到表空间DDL语句
  2069. SELECT (SELECT b.NAME FROM v$tablespace b WHERE b.TS# = a.TS#) ts_name,
  2070.        a.NAME datafilename,
  2071.       'create tablespace '||(SELECT b.NAME FROM v$tablespace b WHERE b.TS# = a.TS#) || ' datafile ' || a.NAME ||' size ;'
  2072.   FROM v$datafile a;
  2073.  
  2074.  SELECT TABLESPACE_NAME,
  2075.         substr(create_ts, 1, instr(create_ts, 'EXTENT') - 1) || ';'
  2076.    FROM (SELECT a.TABLESPACE_NAME,
  2077.                 replace(to_char(DBMS_METADATA.GET_DDL('TABLESPACE',
  2078.                                                       a.tablespace_name)),
  2079.                         chr(10),
  2080.                         '') create_ts
  2081.            FROM DBA_TABLESPACES a) v
  2082.   where v.TABLESPACE_NAME not in
  2083.         ('SYSTEM', 'SYSAUX', 'UNDOTBS1', 'TEMP', 'USERS', 'EXAMPLE');
  2084.              

  2085. ------------------------- 得到用户及其权限的DDL语句
  2086. SELECT DBMS_METADATA.GET_DDL('USER','LHRSYS') DDL_SQL FROM DUAL
  2087. UNION ALL
  2088. SELECT ((DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT', 'LHRSYS'))) FROM DUAL
  2089. UNION ALL
  2090. SELECT ((DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT', 'LHRSYS'))) FROM DUAL
  2091. UNION ALL
  2092. SELECT ((DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT', 'LHRSYS'))) FROM DUAL;


  2093. drop table t_tmp_user_lhr;
  2094. create table t_tmp_user_lhr( id number, username varchar2(50), exec_sql varchar2(4000),create_type varchar2(20) );
  2095. DROP sequence s_t_tmp_user_lhr;
  2096. create sequence s_t_tmp_user_lhr;

  2097. begin

  2098.   for cur in (SELECT d.username,
  2099.                      d.default_tablespace,
  2100.                      d.account_status,
  2101.                      'create user ' || d.username || ' identified by ' ||
  2102.                      d.username || ' default tablespace ' ||
  2103.                      d.default_tablespace || ' TEMPORARY TABLESPACE ' ||
  2104.                      D.temporary_tablespace || ';' CREATE_USER,
  2105.                      replace(to_char(DBMS_METADATA.GET_DDL('USER',
  2106.                                                            D.username)),
  2107.                              chr(10),
  2108.                              '') create_USER1
  2109.                 FROM dba_users d
  2110.   WHERE d.username not in ('ANONYMOUS','APEX_030200','APEX_PUBLIC_USER','APPQOSSYS','BI','CTXSYS','DBSNMP','DIP','DMSYS','DVSYS','EXFSYS','FLOWS_FILES','HR','IX','LBACSYS','MDDATA','MDSYS','MGMT_VIEW','OE','OLAPSYS','ORACLE_OCM','ORDDATA','ORDPLUGINS','ORDSYS','OUTLN','OWBSYS','OWBSYS_AUDIT','PM','REMOTE_SCHEDULER_AGENT','SCOTT','SH','SI_INFORMATN_SCHEMA','SI_INFORMTN_SCHEMA','SPATIAL_CSW_ADMIN_USR','SPATIAL_WFS_ADMIN_USR','SYS','SYSMAN','SYSTEM','TSMSYS','WK_TEST','WKPROXY','WKSYS','WMSYS','XDB','XS$NULL','CSMIG')) loop
  2111.   
  2112.     INSERT INTO t_tmp_user_lhr
  2113.       (id, username, exec_sql, create_type)
  2114.     values
  2115.       (s_t_tmp_user_lhr.nextval, cur.username, cur.CREATE_USER, 'USER');
  2116.       
  2117.     INSERT INTO t_tmp_user_lhr
  2118.       (id, username, exec_sql, create_type)
  2119.       SELECT s_t_tmp_user_lhr.nextval,
  2120.              cur.username,
  2121.              CASE
  2122.                WHEN D.ADMIN_OPTION = 'YES' THEN
  2123.                 'GRANT ' || d.privilege || ' TO ' || d.GRANTEE ||
  2124.                 ' WITH GRANT OPTION ;'
  2125.                ELSE
  2126.                 'GRANT ' || d.privilege || ' TO ' || d.GRANTEE || ';'
  2127.              END priv,
  2128.              'DBA_SYS_PRIVS'
  2129.         FROM dba_sys_privs d
  2130.        WHERE D.GRANTEE = CUR.USERNAME;

  2131.     INSERT INTO t_tmp_user_lhr
  2132.       (id, username, exec_sql, create_type)
  2133.       SELECT s_t_tmp_user_lhr.nextval,
  2134.              cur.username,
  2135.              CASE
  2136.                WHEN D.ADMIN_OPTION = 'YES' THEN
  2137.                 'GRANT ' || d.GRANTED_ROLE || ' TO ' || d.GRANTEE ||
  2138.                 ' WITH GRANT OPTION;'
  2139.                ELSE
  2140.                 'GRANT ' || d.GRANTED_ROLE || ' TO ' || d.GRANTEE || ';'
  2141.              END priv,
  2142.              'DBA_ROLE_PRIVS'
  2143.         FROM DBA_ROLE_PRIVS d
  2144.        WHERE D.GRANTEE = CUR.USERNAME;

  2145.     INSERT INTO t_tmp_user_lhr
  2146.       (id, username, exec_sql, create_type)
  2147.       SELECT s_t_tmp_user_lhr.nextval,
  2148.              cur.username,
  2149.              CASE
  2150.                WHEN d.grantable = 'YES' THEN
  2151.                 'GRANT ' || d.privilege || ' ON ' || d.owner || '.' ||
  2152.                 d.table_name || ' TO ' || d.GRANTEE ||
  2153.                 ' WITH GRANT OPTION ;'
  2154.                ELSE
  2155.                 'GRANT ' || d.privilege || ' ON ' || d.owner || '.' ||
  2156.                 d.table_name || ' TO ' || d.GRANTEE || ';'
  2157.              END priv,
  2158.              'DBA_TAB_PRIVS'
  2159.         FROM DBA_TAB_PRIVS d
  2160.        WHERE D.GRANTEE = CUR.USERNAME;
  2161.   end loop;
  2162.   COMMIT;
  2163. end;
  2164. /
  2165.  SELECT * FROM t_tmp_user_lhr;


  2166.  
  2167. ------------------------------------------------------------------------------------------------------------------------------
  2168. ------------------------------------------------------------------------------------------------------------------------------


  2169. ---怎么批量去除WORD里表格中的超链接

  2170. 全选文档。按"Ctrl+shift+F9"断开连接就行了。




  2171. ------------------------------------------------------------------------------------------------------------------------------
  2172. ------------------------------------------------------------------------------------------------------------------------------

  2173. ----linux下批量查找/替换文本内容
  2174. --一般在本地电脑上批量替换文本有许多工具可以做到,比如sublime text ,但大多服务器上都是无图形界面的,为此收集了几条针对linux命令行 实现批量替换文本内容的命令:
  2175. --1.批量查找某个目下文件的包含的内容,例如:

  2176. # grep -rn "要找查找的文本" ./

  2177. [oracle@rhel6_lhr dpdump]$ grep -rn "ALTER SESSION SET EVENTS" ./
  2178. ./spool_result.sql:2:ALTER SESSION SET EVENTS '10150 TRACE NAME CONTEXT FOREVER, LEVEL 1';
  2179. ./spool_result.sql:3:ALTER SESSION SET EVENTS '10904 TRACE NAME CONTEXT FOREVER, LEVEL 1';
  2180. ./spool_result.sql:4:ALTER SESSION SET EVENTS '25475 TRACE NAME CONTEXT FOREVER, LEVEL 1';
  2181. ./spool_result.sql:5:ALTER SESSION SET EVENTS '10407 TRACE NAME CONTEXT FOREVER, LEVEL 1';
  2182. ./spool_result.sql:6:ALTER SESSION SET EVENTS '10851 TRACE NAME CONTEXT FOREVER, LEVEL 1';
  2183. ./spool_result.sql:7:ALTER SESSION SET EVENTS '22830 TRACE NAME CONTEXT FOREVER, LEVEL 192 ';


  2184. --2.批量查找并替换文件内容。
  2185. # sed -i "s/要找查找的文本/替换后的文本/g" `grep -rl "要找查找的文本" ./`

  2186. 例如替换 被病毒修改的一段脚本:
  2187. sed -i "s/<script type=\"text\/javascript\" src='http:\/\/t.cn\/RhyQ1GN'><\/script>//g" `grep -rl "<script type=\"text\/javascript\" src='http:\/\/t.cn\/RhyQ1GN'><\/script>" ./`

  2188. ----将STORAGE(INITIAL开头的行整行替换为STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  2189. -- 必须加 点和星号和最后的g ,否则不能整行替换
  2190. sed 's/^STORAGE(INITIAL.*/STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645/g' a.txt > b.txt






  2191. -------------------------------------------------------------------------------------------------------------- 修改日期的显示格式
  2192. execute immediate 'alter session set NLS_DATE_FORMAT=''YYYY-MM-DD DY HH24:MI:SS''';
  2193. alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
  2194. alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;


  2195. ----------------------------------------------------------------------------- sqlplus 设置
  2196.  --$ORACLE_HOME/sqlplus/admin/glogin.sql
  2197.  
  2198. set linesize 9999 pagesize 9999
  2199. set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "



  2200.  
  2201. set time on;
  2202. set line 9999
  2203. set pagesize 9999;
  2204. set timing on;
  2205. set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "



  2206. set echo on;
  2207. set time on;
  2208. SET LONG 99999999;
  2209. SET LONGCHUNKSIZE 1000000;
  2210. set timing on;
  2211. set serveroutput on size 1000000;
  2212. set sqlblanklines on;
  2213. set linesize 800;
  2214. set pagesize 50000;
  2215. set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "
  2216. host color 02
  2217. alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
  2218. set errorlogging on table lhr.sperrorlog;
  2219. set errorlogging on identifier LHR_SESSION


  2220. --- alter session set nls_date_language='american' ;

  2221. --------------------------------------------------------rman备份-----------------------------------------------------------

  2222. backup as backupset database format '/u05/oracle/oracle_bk/orclasm/full_%n_%T_%t_%s_%p.bak' include current controlfile plus archivelog;
  2223. backup as compressed backupset format '/arch/oracle_bk/ora2lhr/full_%n_%T_%t_%s.bak' database include current controlfile plus archivelog delete input ;

  2224. ----------------------------- 归档 open 全备
  2225. export ORACLE_SID=ora11g
  2226. export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
  2227. export PATH=$ORACLE_HOME/bin:$PATH
  2228. MYDATE=`date +'%Y%m%d%H%M%S'`
  2229. BACKUP_DIR=/home/oracle/oracle_bk/$ORACLE_SID
  2230. mkdir -p $BACKUP_DIR/log

  2231.  
  2232. rman target / log $BACKUP_DIR/log/rman_full_$MYDATE.log append <<EOF
  2233. run
  2234. {
  2235.  allocate channel c1 type disk;
  2236.  allocate channel c2 type disk;
  2237.  backup database filesperset 4 format '$BACKUP_DIR/full_%n_%T_%t_%s_%p.bak';
  2238.  backup spfile tag='bk_spfile_$MYDATE' format='$BACKUP_DIR/spfile_%n_%U_%T.bak';
  2239.  sql 'alter system archive log current';
  2240.  backup archivelog all format '$BACKUP_DIR/arch_%d_%T_%s_%p.bak' delete input;
  2241.  backup current controlfile format '$BACKUP_DIR/ctl_%d_%T_%s_%p.bak';
  2242.  release channel c1;
  2243.  release channel c2;
  2244. }
  2245. EOF

  2246. rman target / log $BACKUP_DIR/log/rman_delete_$MYDATE.log append <<EOF
  2247.  allocate channel for maintenance type disk;
  2248.  allocate channel for maintenance type sbt_tape;
  2249.  crosscheck archivelog all;
  2250.  crosscheck backup;
  2251.  delete noprompt obsolete;
  2252.  delete noprompt expired archivelog all;
  2253. EOF



  2254. ----------------------------- 非归档 mount 全备
  2255. export ORACLE_SID=oralhr
  2256. export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
  2257. export PATH=$ORACLE_HOME/bin:$PATH
  2258. MYDATE=`date +'%Y%m%d%H%M%S'`
  2259. BACKUP_DIR=/home/oracle/oracle_bk/$ORACLE_SID
  2260. mkdir -p $BACKUP_DIR/log

  2261.  
  2262. rman target / log $BACKUP_DIR/log/rman_full_$MYDATE.log append <<EOF
  2263. run
  2264. {
  2265.  shutdown immediate;
  2266.  startup mount;
  2267.  allocate channel c1 type disk;
  2268.  allocate channel c2 type disk;
  2269.  backup database filesperset 4 format '$BACKUP_DIR/full_%n_%T_%t_%s_%p.bak';
  2270.  backup spfile tag='bk_spfile_$MYDATE' format='$BACKUP_DIR/spfile_%n_%U_%T.bak';
  2271.  backup archivelog all format '$BACKUP_DIR/arch_%d_%T_%s_%p.bak' delete input;
  2272.  backup current controlfile format '$BACKUP_DIR/ctl_%d_%T_%s_%p.bak';
  2273.  release channel c1;
  2274.  release channel c2;
  2275.  alter database open;
  2276. }
  2277. EOF

  2278. rman target / log $BACKUP_DIR/log/rman_delete_$MYDATE.log append <<EOF
  2279.  allocate channel for maintenance type disk;
  2280.  allocate channel for maintenance type sbt_tape;
  2281.  crosscheck archivelog all;
  2282.  crosscheck backup;
  2283.  delete noprompt obsolete;
  2284. EOF





  2285. --------------------------------------------------------冷备(最适合非归档)-----------------------------------------------------------
  2286. set feedback off
  2287. set heading off
  2288. set verify off
  2289. set trimspool off
  2290. set pagesize 0
  2291. set linesize 200
  2292. define dir = '/home/oracle/oracle_bk/coolbak'
  2293. define script = '/tmp/coolbak.sql'
  2294. spool &script
  2295. select 'ho cp ' || name || ' &dir' from v$controlfile
  2296. union all
  2297. select 'ho cp ' || name || ' &dir' from v$datafile
  2298. union all
  2299. select 'ho cp ' || member || ' &dir' from v$logfile
  2300. union all
  2301. select 'ho cp ' || name || ' &dir' from v$tempfile
  2302. /
  2303. create pfile = '&dir/initorcl.ora' from spfile;
  2304. ho cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwutf8test &dir
  2305. spool off
  2306. alter database backup controlfile to trace as '/home/oracle/oracle_bk/coolbak/ctl.sql';
  2307. shutdown immediate
  2308. start &script
  2309. --ho rm &script
  2310. startup




  2311. ---------有坏块情况下的备份 ORA-19566: exceeded limit of 0 corrupt blocks for file /oracle/app/oracle/oralhr/users01.dbf
  2312. run{
  2313.   set maxcorrupt for datafile 4 to 2;
  2314.   backup datafile 4 tag='2corruptblock';
  2315. }





  2316. --------------------------------------------------------热备(归档)-----------------------------------------------------------
  2317. --------------------------- 热备 基于database (归档)
  2318. set feedback off
  2319. set heading off
  2320. set verify off
  2321. set trimspool off
  2322. set pagesize 0
  2323. set linesize 200
  2324. define dir = '/home/oracle/oracle_bk/hotbak'
  2325. define script = '/tmp/hotbak.sql'
  2326. spool &script
  2327. select 'ho cp ' ||name|| ' &dir' from v$datafile;
  2328. spool off
  2329. alter database begin backup;
  2330. start &script
  2331. alter database end backup;
  2332. alter database backup controlfile to trace as '&dir/controlbak.sql';
  2333. alter database backup controlfile to '&dir/controlbak.ctl';
  2334. create pfile = '&dir/initorcl.ora' from spfile;


  2335. --------------------------热备 基于表空间 (归档)
  2336. set feedback off
  2337. set heading off
  2338. set verify off
  2339. set trimspool off
  2340. set pagesize 0
  2341. set linesize 200
  2342. define dir = '/home/oracle/oracle_bk/hotbak'
  2343. define script = '/tmp/hotbak_tb.sql'
  2344. spool &script
  2345. select 'alter tablespace '|| tablespace_name ||' begin backup ;' ||
  2346.  chr(10)||'ho cp ' || file_name || ' &dir ' ||
  2347.  chr(10)||'alter tablespace '|| tablespace_name || ' end backup;'
  2348.  from dba_data_files order by tablespace_name;
  2349. spool off
  2350. alter system switch logfile;
  2351. start &script
  2352. alter system switch logfile;
  2353. alter database backup controlfile to '&dir/controlbak.ctl';
  2354. alter database backup controlfile to trace as '&dir/controlbak.sql';
  2355. create pfile = '&dir/initorcl.ora' from spfile;


  2356. ----------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------
  2357. ----------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------
  2358. -------------------------------------- LogMiner 日志挖掘
  2359. 要安装LogMiner工具,必须首先要运行下面这样两个脚本:
  2360. $ORACLE_HOME/rdbms/admin/dbmslm.sql
  2361. $ORACLE_HOME/rdbms/admin/dbmslmd.sql
  2362. 这两个脚本必须均以SYS用户身份运行。其中第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件。第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。


  2363. ---设置单独的表空间
  2364. create tablespace ts_LOGMNR datafile '/sda4/u01/app/oracle/oradata/orcllinux/logmnr.dbf' size 1G autoextend on next 2M ;
  2365. exec dbms_logmnr_d.set_tablespace('ts_logmnr');



  2366. ---------------- 附加日志
  2367. ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
  2368. alter database add supplemental log data(primary key) columns;
  2369. ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;
  2370. SELECT SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_pk FROM V$DATABASE;


  2371. ---找到需要进行日志挖掘的归档日志
  2372. list archivelog all completed between '2017-01-01 16:20:00' and '2017-01-01 16:25:00';
  2373. export NLS_DATE_FORMAT='YYYY-MM-DD HH24:mi:ss';

  2374. exec dbms_logmnr.add_logfile('归档日志文件', Options => dbms_logmnr.new);
  2375. exec dbms_logmnr.add_logfile('归档日志文件', Options => dbms_logmnr.ADDFILE);

  2376. --若归档日志不在本地,则需要恢复相应的归档日志到本地目录。
  2377.    run {allocate channel ci type disk;
  2378.       set archivelog destination to '/tmp';
  2379.       restore archvielog from logseq xxx until logseq xxx;
  2380.       release channel ci;
  2381.     };


  2382.    

  2383. -------------- 利用平面文件作为数据字典
  2384. alter system set utl_file_dir='/home/oracle/' scope=spfile; --然后重启库
  2385. exec dbms_logmnr_d.build('log.ora','/home/oracle/',dbms_logmnr_d.store_in_flat_file);
  2386. exec dbms_logmnr.add_logfile('+FRA/orclasm/archivelog/2015_01_20/thread_1_seq_952.463.869481079',dbms_logmnr.new);
  2387. exec dbms_logmnr.add_logfile('+FRA/orclasm/archivelog/2015_01_20/thread_1_seq_953.462.869481107',dbms_logmnr.addfile);
  2388. exec dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/log.ora');
  2389. create table LHR.testlog as select * from v$logmnr_contents a;
  2390. EXEC DBMS_LOGMNR.END_LOGMNR;

  2391. -------------------------- redo 字典
  2392. ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
  2393. exec dbms_logmnr_d.build(options => dbms_logmnr_d.STORE_IN_REDO_LOGS);
  2394.  select a.*
  2395.    from v$archived_log a
  2396.   WHERE a.name IS NOT NULL
  2397.     and (a.DICTIONARY_BEGIN = 'YES' or a.DICTIONARY_END = 'YES');


  2398. -------------- 利用在线日志作为数据字典
  2399. SELECT ' dbms_logmnr.add_logfile(''' || MEMBER || ''');' FROM v$logfile;

  2400. BEGIN
  2401.   dbms_logmnr.add_logfile('+DATA/orclasm/onlinelog/group_3.263.850260263',dbms_logmnr.new) ;
  2402.   dbms_logmnr.add_logfile('+DATA/orclasm/onlinelog/group_2.262.850260259',dbms_logmnr.ADDFILE) ;
  2403.   dbms_logmnr.add_logfile('+DATA/orclasm/onlinelog/group_1.261.850260255',dbms_logmnr.ADDFILE)) ;
  2404.   dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog + dbms_logmnr.committed_data_only);
  2405. END;

  2406. SELECT scn, sql_redo, a.SQL_UNDO, a.*
  2407.   FROM v$logmnr_contents a
  2408.  WHERE a.OPERATION = 'INSERT'
  2409.    and a.TABLE_NAME = 'AABB';

  2410. create table testlog as select * from v$logmnr_contents a;

  2411. begin
  2412.   dbms_logmnr.end_logmnr();
  2413. end;



  2414. EXECUTE DBMS_LOGMNR_D.BUILD (OPTIONS=>DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);




  2415. -------------------------- online字典
  2416. begin
  2417.  dbms_logmnr.start_logmnr(startScn => 23573690,
  2418.                           endScn => 23632671,
  2419.                           Options => dbms_logmnr.DICT_FROM_ONLINE_CATALOG + dbms_logmnr.CONTINUOUS_MINE);
  2420. end;



  2421. begin
  2422.  dbms_logmnr.start_logmnr(startScn => 23573690,
  2423.                                    endScn => 23632671,
  2424.                                    Options => dbms_logmnr.DICT_FROM_REDO_LOGS +
  2425.                                                dbms_logmnr.CONTINUOUS_MINE);
  2426. end;


  2427. export NLS_DATE_FORMAT='YYYY-MM-DD HH24:mi:ss';
  2428. list archivelog all completed between '2015-06-03 08:00:00' and '2015-06-03 09:00:00';
  2429. exec SYS.DBMS_LOGMNR.ADD_LOGFILE( '/u01/app/oracle11g/flash_recovery_area/TEST/archivelog/2015_06_03/o1_mf_1_505_7w35gdnx_.arc', sys.dbms_logmnr.New);
  2430. BEGIN
  2431.     DBMS_LOGMNR.START_LOGMNR(
  2432.     STARTTIME => '2015-06-03 11:10:12',
  2433.     ENDTIME => '2015-06-03 11:13:06',
  2434.     OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.CONTINUOUS_MINE);
  2435. END;
  2436. /

  2437. ---查询挖掘到的结果
  2438. select a.SCN,a.TIMESTAMP,a.SQL_REDO from v$logmnr_contents A where table_name='XXXX' and OPERATION='INSERT' order by a.SCN;




  2439. --清除控制文件中关于v$archived_log的信息
  2440. execute sys.dbms_backup_restore.resetCfileSection(11);

  2441. ---恢复归档
  2442.    1.恢复全部归档日志文件
  2443.      RMAN> restore archivelog all;
  2444.    2.只恢复5到8这四个归档日志文件
  2445.      RMAN> restore archivelog from logseq 5 until logseq 8;
  2446.    3.恢复从第5个归档日志起
  2447.      RMAN> restore archivelog from logseq 5;
  2448.    4.恢复7天内的归档日志
  2449.      RMAN> restore archivelog from time 'sysdate-7';
  2450.    5. sequence between 写法
  2451.      RMAN> restore archivelog sequence between 1 and 3;
  2452.    6.恢复到哪个日志文件为止
  2453.      RMAN> restore archivelog until logseq 3;
  2454.    7.从第五个日志开始恢复
  2455.      RMAN> restore archivelog low logseq 5;
  2456.    8.到第5个日志为止
  2457.      RMAN> restore archivelog high logseq 5;
  2458. 恢复指定的archivelog:restore archivelog sequence 18;
  2459. --若归档日志不在本地,则需要恢复相应的归档日志到本地目录。
  2460.    run {allocate channel ci type disk;
  2461.       set archivelog destination to '/tmp';
  2462.       restore archvielog from logseq xxx until logseq xxx;
  2463.       release channel ci;
  2464.     };



  2465. ------------------------------------------------------------------------------------------ 详细执行计划

  2466. ---------------Session级别:
  2467. ALTER SESSION SET STATISTICS_LEVEL=ALL;
  2468. ----------------- 诧句级别 使用HINT
  2469. select /*+ gather_plan_statistics*/ ...


  2470. SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('f6cz4n8y72xdc',0,'ADVANCED ALLSTATS LAST PEEKED_BINDS'));





  2471. -------------------------------------------------------------------------------------------- 其他


  2472.  
  2473.  SELECT * FROM DBA_STREAMS_UNSUPPORTED;
  2474.  
  2475.   ------------------- 锁和事务关系
  2476. select * from v$lock a where type in ('TM','TX') ;

  2477. SELECT * from v$transaction;

  2478.  select trunc(655385/power(2,16)) XIDUSN from dual;
  2479. 10

  2480.   select bitand(655385,to_number('ffff','xxxx'))+0 XIDSLOT from dual;

  2481. 25
  2482.  
  2483.  
  2484.  ---------------------------------truncate 后的恢复-------------------------- 恢复的过程会多次执行 alter system flush buffer_cache;


  2485. ------------ tmp目录空闲空间需要比表的大小大
  2486. create table lhr.TRUNTAB as SELECT * FROM dba_objects where rownum<=10;

  2487. SELECT COUNT(1) FROM lhr.TRUNTAB;

  2488. truncate table lhr.TRUNTAB;

  2489. exec fy_recover_data.recover_truncated_table('LHR','TRUNTAB',1);

  2490. SELECT * FROM lhr.TRUNTAB$$;
  2491. insert into lhr.TRUNTAB SELECT * FROM lhr.TRUNTAB$$;
  2492. commit;
  2493. drop tablespace FY_REC_DATA including contents and datafiles;
  2494. drop tablespace FY_RST_DATA including contents and datafiles;

  2495.  





  2496.  ---闪回
  2497. alter table TRUNTAB enable row movement;
  2498. flashback table TRUNTAB to timestamp to_date('2014/12/31 17:33:00','YYYY/MM/DD HH24:MI/SS');


  2499.  


  2500. --------------长查询
  2501. SELECT * FROM vw_active_session_lhr a where a.USERNAME IS NOT NULL ;
  2502. SELECT * FROM vw_longrun_lhr;
  2503. SET LINE 9999 PAGESIZE 9999
  2504. col username format a10
  2505. col session_info format a30
  2506. col target format a20
  2507. col opname format a35
  2508. col message format a80
  2509. col sofar_TOTALWORK format a20
  2510. col progress format a8

  2511. SELECT A.USERNAME,
  2512.        (SELECT NB.SID || ',' || NB.SERIAL# || ',' || PR.SPID || ',' ||NB.OSUSER|| ',' ||nb.status|| ',' ||nb.EVENT
  2513.           FROM GV$PROCESS PR, GV$SESSION NB
  2514.          WHERE NB.PADDR = PR.ADDR
  2515.            AND NB.SID = A.SID
  2516.            AND NB.SERIAL# = A.SERIAL#
  2517.            AND PR.INST_ID = NB.INST_ID) SESSION_INFO,
  2518.        A.TARGET,
  2519.        A.OPNAME,
  2520.        TO_CHAR(A.START_TIME, 'YYYY-MM-DD HH24:MI:SS') START_TIME,
  2521.        ROUND(A.SOFAR * 100 / A.TOTALWORK, 2) || '%' AS PROGRESS,
  2522.        (A.SOFAR || ':' || A.TOTALWORK) SOFAR_TOTALWORK,
  2523.        A.TIME_REMAINING TIME_REMAINING,
  2524.        A.ELAPSED_SECONDS ELAPSED_SECONDS,
  2525.        MESSAGE MESSAGE
  2526.   FROM GV$SESSION_LONGOPS A
  2527.  WHERE A.TIME_REMAINING <> 0
  2528.  ORDER BY A.TIME_REMAINING DESC, A.SQL_ID, A.SID;






  2529. SELECT * FROM vw_tablespace_datafile_lhr ;

  2530. SELECT * FROM xb_audit_ddl_lhr a WHERE a.id >=2373180 ;
  2531.  
  2532.  
  2533.  ----------------------------------------------------------- 归档
  2534. alter system set log_archive_dest_1='location=D:\arch';
  2535. alter system set log_archive_dest='USE_DB_RECOVERY_FILE_DEST';

  2536. show parameter DB_RECOVERY_FILE_DEST


  2537.  如果归档日志为自动归档,则切换日志(alter system switch logfile)会自动归档;
  2538.  如果为手动归档模式,则不会归档,除非你执行下列命令手动归档:
  2539. alter system archive log sequence lognumber
  2540.  alter system archive log all
  2541.  alter system archive log current

  2542. 查看归档日志模式:select log_mode from v$database;
  2543.  NOARCHIVELOG-- 为不归档
  2544. ARCHIVELOG -- 为自动归档
  2545. MANUAL --手动归档模式
  2546.  修改归档日志模式:
  2547. alter database noarchivelog;
  2548. alter database archivelog;
  2549. alter database archivelog manual;
  2550.  
  2551.  
  2552.  
  2553.  ----------------通过移动数据文件来均衡文件I/O
  2554. col PHYRDS format 999999999
  2555. col PHYWRTS format 999999999
  2556. col READTIM format 999999999
  2557. col WRITETIM format 999999999
  2558. col name for a60
  2559. set line 9999 pagesize 9999
  2560. select name,phyrds,phywrts,readtim,writetim
  2561. from v$filestat a,v$datafile b
  2562. where a.file#=b.file#
  2563. union all
  2564. select name,PHYRDS,PHYWRTS,READTIM,WRITETIM from v$tempstat a,v$tempfile b where a.file#=b.file#
  2565. order by readtim desc;
  2566.  




  2567.  
  2568.   /*查看表最后一次DML时间*/
  2569. select max(ora_rowscn), to_char(scn_to_timestamp(max(ora_rowscn)),'YYYY-MM-DD HH24:MI:SS') from aa;
  2570. select a.*,dbms_rowid.rowid_block_number(rowid),to_char(ora_rowscn),to_char(scn_to_timestamp(ora_rowscn),'YYYY-MM-DD HH24:MI:SS') from AA a;

  2571. SQL> select ename ,sal,dbms_rowid.rowid_block_number(rowid) block#,dbms_rowid.rowid_relative_fno(rowid) as file# from scott.emp where empno=7839;

  2572. ENAME SAL BLOCK# FILE#
  2573. ---------- ---------- ---------- ----------
  2574. KING 5000 32 4

  2575. SQL>

  2576.  
  2577.    ------------------------------------------ 日志切换频率
  2578. select b.SEQUENCE#,
  2579.        b.FIRST_TIME,
  2580.        a.SEQUENCE#,
  2581.        a.FIRST_TIME,
  2582.        round(((a.FIRST_TIME - b.FIRST_TIME) * 24) * 60, 2) min
  2583.   from v$log_history a, v$log_history b
  2584.  where a.SEQUENCE# = b.SEQUENCE# + 1
  2585.    and b.THREAD# = 1
  2586.  order by a.SEQUENCE# desc;

  2587.    
  2588.    select sequence#,
  2589.           first_time,
  2590.           nexttime,
  2591.           round(((first_time - nexttime) * 24) * 60, 2) diff
  2592.      from (select sequence#,
  2593.                   first_time,
  2594.                   lag(first_time) over(order by sequence#) nexttime
  2595.              from v$log_history
  2596.             where thread# = 1)
  2597.     order by sequence# desc;
  2598.         
  2599.         
  2600. select max (first_time) max_first_time,
  2601.          to_char (first_time, 'yyyy-mm-dd') day,
  2602.          count (recid) count_number,
  2603.          count (recid) * 200 size_mb
  2604.  from v$log_history
  2605. group by to_char (first_time, 'yyyy-mm-dd')
  2606. order by 1;


  2607. --------------------------------------------------------------------------------------------------- 开启10046事件

  2608. 10046事件级别:

  2609. level 0:禁用SQL_TRACE,等价于SQL_TRACE=FALSE
  2610. level 1:启用标准的sql_trace功能跟踪SQL语句,包括解析、执行、提取、提交和回滚等,等价于SQL_TRACE=TRUE
  2611. level 4:Level 1 +包括变量(bind values)的详细信息
  2612. level 8:Level 1 + 包括等待事件
  2613. level 12:包括绑定变量与等待事件,包含Level 1 + Level 4 + Level 8



  2614. alter session set SQL_TRACE=true;
  2615. alter session set SQL_TRACE=false;
  2616. alter session set events '10046 trace name context forever, level 12';
  2617. alter session set events '10046 trace name context off';
  2618. alter session set events '10046 trace name context off, LEVEL 12';
  2619. --对单个 SQL ID 打开10046事件跟踪
  2620. ALTER SYSTEM SET EVENTS 'SQL_TRACE [SQL:&&SQL_ID] BIND=TRUE,WAIT=TRUE';
  2621. ALTER SYSTEM SET EVENTS 'SQL_TRACE [SQL:C7452AGJ0S0T6] WAIT=TRUE,BIND=TRUE,PLAN_STAT=ALL_EXECUTIONS,LEVEL=12';
  2622. --关闭单个SQL的跟踪命令如下所示:
  2623. ALTER SYSTEM SET EVENTS 'SQL_TRACE [SQL:&&SQL_ID] OFF';


  2624. exec dbms_session.set_sql_trace(true);
  2625. exec dbms_session.set_sql_trace(false);
  2626. exec dbms_session.session_trace_enable(waits=>true,binds=>true);
  2627. exec dbms_session.session_trace_enable(); 



  2628. -----跟踪其它会话
  2629. SQL> exec dbms_system.set_ev(sid,serial#,10046,12,'');
  2630. SQL> exec dbms_system.set_ev(sid,serial#,10046,0,'');

  2631. exec dbms_system.set_sql_trace_in_session(9,437,true);
  2632. exec dbms_system.set_sql_trace_in_session(9,437,false);


  2633. SQL> exec dbms_monitor.session_trace_enable;
  2634. SQL> 执行sql
  2635. SQL> exec dbms_monitor.session_trace_disable;
  2636. 跟踪其他会话:
  2637. SQL> exec dbms_monitor.session_trace_enable(session_id=>sid,serial_num=>serial#,waits=>true,binds=>true);
  2638. SQL> exec dbms_monitor.session_trace_disable(session_id=>sid,serial_num=>serial#);




  2639. --跟踪当前会话:
  2640. SQL> oradebug setmypid;
  2641. Statement processed.
  2642. SQL> oradebug unlimit;
  2643. Statement processed.
  2644. SQL> oradebug event 10046 trace name context forever,level 12;
  2645. Statement processed.
  2646. SQL> 执行sql
  2647. SQL> oradebug tracefile_name
  2648. SQL> oradebug event 10046 trace name context off;
  2649. Statement processed.
  2650. --跟踪其他会话:
  2651. SQL> select spid,pid2 from v$process
  2652.   2 where addr in (select paddr from v$session where sid=(select distinct sid from v$mystat));
  2653. SPID PID
  2654. ------------ ----------
  2655. 1457 313
  2656. SQL> oradebug setospid 1457;
  2657. Statement processed.
  2658. 或者
  2659. SQL> oradebug setorapid 313;
  2660. Statement processed.
  2661. SQL> oradebug unlimit;
  2662. Statement processed.
  2663. SQL> oradebug event 10046 trace name context forever,level 12;
  2664. Statement processed.
  2665. SQL> oradebug tracefile_name
  2666. SQL> oradebug event 10046 trace name context off;
  2667. Statement processed.





  2668. SELECT a.SID,
  2669.        b.SERIAL# ,
  2670.        c.SPID
  2671. FROM v$mystat a,
  2672.        v$session b ,
  2673.        v$process c
  2674. WHERE a.SID = b.SID
  2675. and b.PADDR=c.ADDR
  2676. AND rownum = 1;


  2677. --启用errorstack的跟踪来找到出现问题的SQL语句
  2678. alter session set events '3001 trace name errorstack level 3';

  2679. ---跟踪1438的错误
  2680. alter system set events='1438 trace name errorstack forever,level 3';
  2681. alter system set events='1438 trace name errorstack off';


  2682. 系统默认没有安装dbms_support这个包,可以手动执行$ORACLE_HOME/rdbms/admin/bmssupp.sql脚本来创建该包跟踪当前会话:
  2683. SQL> exec dbms_support.start_trace
  2684. SQL> 执行sql
  2685. SQL> exec dbms_support.stop_trace
  2686. 跟踪其他会话:等待事件+绑定变量,相当于level 12的10046事件。
  2687. SQL> select sid,serial#,username from v$session where ...;
  2688. SQL> exec dbms_support.start_trace_in_session(sid=>sid,serial=>serial#,waits=>true,binds=>true);
  2689. SQL> exec dbms_support.stop_trace_in_session(sid=>sid,serial=>serial#);


  2690. ----select value from v$diag_info where name like '%Default%';

  2691. --转储文件路径
  2692. col TRACE_FILE_NAME format a100
  2693. SELECT d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
  2694.        p.spid || '.trc' trace_file_name
  2695. FROM (SELECT p.spid
  2696.         FROM v$mystat m,
  2697.                v$session s,
  2698.                v$process p
  2699.         WHERE m.statistic# = '1'
  2700.         AND s.sid = m.sid
  2701.         AND p.addr = s.paddr) p,
  2702.        (SELECT t.instance
  2703.         FROM v$thread t,
  2704.                v$parameter v
  2705.         WHERE v.name = 'thread'
  2706.         AND (v.value = '0' OR to_char(t.thread#) = v.VALUE)) i,
  2707.        (SELECT VALUE FROM v$parameter WHERE NAME = 'user_dump_dest') d;

  2708. CREATE OR REPLACE VIEW VW_TRACEFILE_ALL_LHR AS
  2709. SELECT INST_ID,
  2710.        SID,
  2711.        SERIAL#,
  2712.        SPID,
  2713.        USERNAME,
  2714.        D.VALUE || '/' || LOWER(RTRIM(I.INSTANCE, CHR(0))) || '_ora_' ||
  2715.        P.SPID || '.trc' TRACE_FILE_NAME
  2716.   FROM (SELECT S.INST_ID, S.SID, S.SERIAL#, P.SPID, S.USERNAME
  2717.           FROM GV$SESSION S, GV$PROCESS P
  2718.          WHERE P.ADDR = S.PADDR
  2719.            AND S.INST_ID = P.INST_ID) P,
  2720.        (SELECT T.INSTANCE
  2721.           FROM GV$THREAD T, GV$PARAMETER V
  2722.          WHERE V.NAME = 'thread'
  2723.            AND (V.VALUE = '0' OR TO_CHAR(T.THREAD#) = V.VALUE)) I,
  2724.        (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'user_dump_dest') D;

  2725. --创建公共同义词:
  2726. CREATE OR REPLACE PUBLIC SYNONYM SYN_TRACEFILE_ALL_LHR FOR VW_TRACEFILE_ALL_LHR;

  2727. 在Oracle 11g中可以直接查询V$PROCESS获取TRACE文件:
  2728. CREATE OR REPLACE VIEW VW_TRACEFILE_LHR AS
  2729. SELECT S.INST_ID, S.SID, S.SERIAL#, P.SPID, S.USERNAME, P.TRACEFILE
  2730.   FROM GV$SESSION S, GV$PROCESS P
  2731.  WHERE P.ADDR = S.PADDR
  2732.    AND S.INST_ID = P.INST_ID ;

  2733. --创建公共同义词:
  2734. CREATE OR REPLACE PUBLIC SYNONYM SYN_TRACEFILE_LHR FOR VW_TRACEFILE_LHR;



  2735. --------------------------如何生成 systemstate dump systemdump systemstate
  2736. ###sysdba可登陆时
  2737. $sqlplus "/as sysdba"
  2738. SQL>oradebug setmypid
  2739. SQL>--其中266表示dump的级别,不用调整,即把系统当前各个进程正在执行什么、正在等待什么全部抓下来
  2740. SQL>oradebug dump systemstate 266 --oradebug dump systemdump 266;
  2741. SQL>--等上30秒到1分钟
  2742. SQL>oradebug dump systemstate 266


  2743. ###sysdba不可登陆时
  2744. sqlplus -prelim "/as sysdba"
  2745. SQL>oradebug setmypid
  2746. SQL>--其中266表示dump的级别,不用调整,即把系统当前各个进程正在执行什么、正在等待什么全部抓下来
  2747. SQL>oradebug dump systemstate 266
  2748. SQL>--等上30秒到1分钟
  2749. SQL>oradebug dump systemstate 266
  2750. SQL> oradebug tracefile_name
  2751. /u02/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_ora_46679.trc


  2752. ----------HANGANALYZE 分析
  2753. SQL> alter session set events 'immediate trace name HANGANALYZE level 3';
  2754. 或者:
  2755. SQL>ORADEBUG hanganalyze 3 --for 单实例
  2756.        
  2757. ------for RAC 实例
  2758. SQL>ORADEBUG setmypid
  2759. SQL>ORADEBUG setinst all
  2760. SQL>ORADEBUG -g def hanganalyze 3     
  2761.        
  2762. The levels are defined as follows:
  2763. 10    Dump all processes (IGN state)
  2764. 5     Level 4 + Dump all processes involved in wait chains (NLEAF state)
  2765. 4     Level 3 + Dump leaf nodes (blockers) in wait chains (LEAF,LEAF_NW,IGN_DMP state)
  2766. 3     Level 2 + Dump only processes thought to be in a hang (IN_HANG state)
  2767. 1-2     Only HANGANALYZE output, no process dump at all



  2768. ----------------------------------------------------------------------------------------------------- 层次查询
  2769.  SELECT LEVEL,
  2770.         id,
  2771.         parentid,
  2772.         (lpad(' ', 8 * (LEVEL - 1)) || LEVEL || ':' || l.name) names,
  2773.         substr(SYS_CONNECT_BY_PATH(NAME, '=>'), 3),
  2774.         connect_by_root(NAME) root,
  2775.         decode(LEVEL,
  2776.                2,
  2777.                NAME,
  2778.                substr(SYS_CONNECT_BY_PATH(NAME, '=>'),
  2779.                       instr(SYS_CONNECT_BY_PATH(NAME, '=>'), '>', 1, 2) + 1,
  2780.                       (instr(SYS_CONNECT_BY_PATH(NAME, '=>'), '=', 1, 3) -
  2781.                       instr(SYS_CONNECT_BY_PATH(NAME, '=>'), '>', 1, 2) - 1))) root2,
  2782.         decode(connect_by_isleaf, 1, 'Y', 0, 'N') is_leaf,
  2783.         decode(connect_by_iscycle, 1, 'Y', 0, 'N') is_leaf
  2784.  FROM xb_location l
  2785.  START WITH l.parentid IS NULL
  2786.  CONNECT BY nocycle PRIOR l.id = l.parentid;




  2787. ----------------------------------------------------------------------------------------------------- 启用系统触发器
  2788. alter system set "_system_trig_enabled"=true; --默认
  2789. alter system reset "_system_trig_enabled" scope=spfile sid='*';


  2790.  
  2791. ----------------------------------------------------------------------------------------------------- 闪回

  2792. select * from user_recyclebin t where t.original_name LIKE'TMP_AB%';
  2793. select * from dba_recyclebin;

  2794. --ddl
  2795. flashback table TMP_AB to before drop rename to old_t;
  2796. flashback table "BIN$B/HqKSpfWrvgU4I7qMATlg==$0" to before drop;

  2797. --dml
  2798. alter table old_t enable row movement;
  2799. flashback table old_t to timestamp to_date('2012/11/13 16:16:40','YYYY/MM/DD HH24:MI/SS');


  2800.  
  2801. --insert into xb_port
  2802. SELECT *
  2803. FROM xb_port AS OF TIMESTAMP TO_TIMESTAMP('2013-04-25 16:53:28', 'YYYY-MM-DD HH24:MI:SS')
  2804. WHERE id = 307247374 ;
  2805. commit;



  2806. SELECT timestamp_to_scn(TO_TIMESTAMP('2012-11-13 16:25:17',
  2807.                                      'YYYY-MM-DD HH24:MI:SS')),
  2808.        to_char(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER) AS SCN
  2809. FROM dual;

  2810. ----查询
  2811. SELECT versions_starttime,
  2812.        versions_startscn,
  2813.        versions_endtime,
  2814.        versions_endscn,
  2815.        versions_xid,
  2816.        versions_operation,
  2817.        id,
  2818.        NAME
  2819. FROM xb_location versions BETWEEN TIMESTAMP to_timestamp('2012-11-13 15:10:40', 'yyyy-mm-dd hh24:mi:ss') AND to_timestamp(to_char(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss')
  2820. WHERE versions_xid IS NOT NULL
  2821. ORDER BY versions_starttime;


  2822. SELECT versions_starttime,
  2823.        versions_startscn,
  2824.        versions_endtime,
  2825.        versions_endscn,
  2826.        versions_xid,
  2827.        versions_operation,
  2828.        id,
  2829.        NAME
  2830. FROM xb_location versions BETWEEN scn minvalue AND maxvalue
  2831. WHERE versions_xid IS NOT NULL
  2832. ORDER BY versions_starttime;

  2833.  
  2834. ------------------------------------------------------- undo表空间
  2835.  --1、系统段 2、非系统段 3、表空间脱机后的defered段
  2836. SELECT d.segment_type,
  2837.        COUNT(1)
  2838. FROM dba_segments d
  2839. GROUP BY d.segment_type;

  2840. select * from dba_segments d where d.segment_type in ('TYPE2 UNDO','ROLLBACK') ;
  2841. select * from dba_rollback_segs;
  2842. select * from dba_undo_extents;
  2843. select * from v$transaction;
  2844. select * from v$rollstat;
  2845. select * from v$rollname;
  2846. select * from dba_extents d where d.segment_name='_SYSSMU25_17381587$';
  2847. select * from v$undostat; ---mount状态可查
  2848. --ssolderrcnt : snapshot too old error count

  2849. select status,count(*) from dba_rollback_segs group by status;

  2850. SELECT d.TABLESPACE_NAME,
  2851.        d.STATUS,
  2852.        SUM(bytes) / 1024 / 1024
  2853. FROM dba_undo_extents d
  2854. GROUP BY d.TABLESPACE_NAME,
  2855.           d.status
  2856. ORDER BY d.TABLESPACE_NAME;

  2857. SELECT r.tablespace_name,
  2858.        r.status "Status",
  2859.        r.segment_name "Name",
  2860.        s.extents "Extents",
  2861.        TO_CHAR((s.bytes / 1024 / 1024), '99999990.000') "SizeM",
  2862.        s.segment_type
  2863. FROM dba_rollback_segs r,
  2864.        dba_segments s
  2865. WHERE r.segment_name = s.segment_name
  2866. AND s.segment_type IN ('ROLLBACK', 'TYPE2 UNDO')
  2867. ORDER BY r.tablespace_name,
  2868.           5 DESC;

  2869. ----估算undo需要的大小
  2870. SELECT (UR * (UPS * DBS)) AS "Bytes" FROM (SELECT value AS UR FROM v$parameter WHERE name = 'undo_retention'), (SELECT undoblks/((end_time-begin_time)*86400) AS UPS FROM v$undostat WHERE undoblks = (SELECT MAX(undoblks) FROM v$undostat)), (SELECT block_size AS DBS FROM dba_tablespaces WHERE tablespace_name = (SELECT UPPER(value) FROM v$parameter WHERE name = 'undo_tablespace'));


  2871. -------------------- 已用大小
  2872. set line 9999
  2873. select s.sid,
  2874.        s.serial#,
  2875.        s.sql_id,
  2876.        v.usn,
  2877.        segment_name,
  2878.        r.status,
  2879.        v.rssize / 1024 / 1024 mb
  2880.   From dba_rollback_segs r, v$rollstat v, v$transaction t, v$session s
  2881.  Where r.segment_id = v.usn
  2882.    and v.usn = t.xidusn
  2883.    and t.addr = s.taddr
  2884.  order by segment_name;


  2885.  ------undo总大小
  2886.  
  2887. SET ECHO OFF
  2888. SET FEEDBACK 6
  2889. SET HEADING ON
  2890. SET LINESIZE 180
  2891. SET PAGESIZE 50000
  2892. SET TERMOUT ON
  2893. SET TIMING OFF
  2894. SET TRIMOUT ON
  2895. SET TRIMSPOOL ON
  2896. SET VERIFY OFF

  2897. COLUMN status FORMAT a9 HEADING 'Status'
  2898. COLUMN name FORMAT a30 HEADING 'Tablespace Name'
  2899. COLUMN type FORMAT a15 HEADING 'TS Type'
  2900. COLUMN extent_mgt FORMAT a10 HEADING 'Ext. Mgt.'
  2901. COLUMN segment_mgt FORMAT a10 HEADING 'Seg. Mgt.'
  2902. COLUMN ts_size FORMAT 9,999,999,999,999 HEADING 'Tablespace Size'
  2903. COLUMN used FORMAT 9,999,999,999,999 HEADING 'Used (in bytes)'
  2904. COLUMN free FORMAT 9,999,999,999,999 HEADING 'Free (in bytes)'
  2905. COLUMN pct_used FORMAT 999 HEADING 'Pct. Used'


  2906. SELECT
  2907.     d.status status
  2908.   , d.tablespace_name name
  2909.   , d.contents type
  2910.   , d.extent_management extent_mgt
  2911.   , d.segment_space_management segment_mgt
  2912.   , NVL(a.bytes, 0) ts_size
  2913.   , NVL(a.bytes - NVL(f.bytes, 0), 0) used
  2914.   , NVL((a.bytes - NVL(f.bytes, 0)) / a.bytes * 100, 0) pct_used
  2915. FROM
  2916.     sys.dba_tablespaces d
  2917.   , ( select tablespace_name, sum(bytes) bytes
  2918.       from dba_data_files
  2919.       group by tablespace_name
  2920.     ) a
  2921.   , ( select tablespace_name, sum(bytes) bytes
  2922.       from dba_free_space
  2923.       group by tablespace_name
  2924.     ) f
  2925. WHERE
  2926.       d.tablespace_name = a.tablespace_name(+)
  2927.   AND d.tablespace_name = f.tablespace_name(+)
  2928.   AND d.tablespace_name like '%UNDO%'
  2929. ORDER BY
  2930.   2;



  2931. --数据文件管理参数: db_create_file_dest
  2932. CREATE TABLESPACE test DATAFILE SIZE 10m;
  2933. alter database datafile 3 resize 5G;
  2934. alter database tempfile 1 resize 2G;
  2935. alter database datafile 3 autoextend off;
  2936. alter database tempfile 1 autoextend off;





  2937. -------------- 重建undo表空间
  2938. create undo tablespace undotbs2 datafile '+DATA' size 100m reuse autoextend off;
  2939. alter system set undo_tablespace=undotbs2;
  2940. drop tablespace undotbs1 including contents and datafiles;
  2941. create undo tablespace undotbs1 datafile '+DATA' size 100m reuse autoextend off;
  2942. alter system set undo_tablespace=undotbs1;
  2943.         
  2944. alter database datafile 3 autoextend off;
  2945. alter database tempfile 1 autoextend off;



  2946. create undo tablespace undotbs2 datafile '+DATA' size 5M;

  2947. alter system set undo_tablespace=undotbs2;
  2948. alter tablespace undotabs2 retention guarantee;


  2949. select t.rowid,dbms_rowid.rowid_relative_fno(rowid) fno,dbms_rowid.rowid_block_number(rowid) bno, t.owner,t.object_name from t ;

  2950. alter system dump datafile 4 block 6643;

  2951. select * from vw_mysession_lhr;


  2952. UBA : undo block address



  2953. select * from v$obsolete_parameter;


  2954. alter database create datafile 3 as '/u03/app/oracle/oradata/ora1024g/undotbs01.dbf' size 50m;


  2955. ------- undo
  2956. alter system set "_offline_rollback_segments"=true scope=spfile;
  2957. alter system set "_offline_rollback_segments"=false scope=spfile; ---默认
  2958. alter system reset "_offline_rollback_segments" scope=spfile sid='*';


  2959. *._offline_rollback_segments=('_SYSSMU154_3691636531$','_SYSSMU155_3686385895$','_SYSSMU156_3796802683$','_SYSSMU157_2723916652$','_SYSSMU158_1435464080$')


  2960. _offline_rollback_segment='_SYSSMU3$'
  2961. _newsort_enabled --排序

  2962.  
  2963. -------- 如果undo为recover状态的话还需要加如下参数
  2964. alter system set "_corrupted_rollback_segments"='_SYSSMU1$','_SYSSMU2$','_SYSSMU3$','_SYSSMU4$','_SYSSMU5$','_SYSSMU6$','_SYSSMU7$','_SYSSMU8$','_SYSSMU9$','_SYSSMU10$' scope=spfile;

  2965. alter system reset "_corrupted_rollback_segments" scope=spfile sid='*';


  2966.  alter system set "_corrupted_rollback_segments"='_SYSSMU1$','_SYSSMU2$','_SYSSMU3$','_SYSSMU4$','_SYSSMU5$','_SYSSMU6$','_SYSSMU7$','_SYSSMU8$','_SYSSMU9$','_SYSSMU10$','_SYSSMU11$','_SYSSMU12$','_SYSSMU13$','_SYSSMU14$','_SYSSMU15$','_SYSSMU16$','_SYSSMU17$','_SYSSMU18$','_SYSSMU19$','_SYSSMU20$' scope=spfile;

  2967. *._corrupted_rollback_segments=('_SYSSMU10_3271578125','_SYSSMU11_125382609','_SYSSMU1_1240252155','_SYSSMU12_2245433549','_SYSSMU13_3242268464','_SYSSMU14_44821983','_SYSSMU15_1872739176','_SYSSMU16_1376564431','_SYSSMU17_1839632768','_SYSSMU18_3088942417','_SYSSMU19_2867910983','_SYSSMU20_948290921','_SYSSMU2_111974964','_SYSSMU3_4004931649','_SYSSMU4_1126976075','_SYSSMU5_2968973961','_SYSSMU6_2060978448','_SYSSMU7_4222772309','_SYSSMU8_3612859353','_SYSSMU9_2370500926')


  2968.  drop rollback segment "drop rollback segment";
  2969. drop rollback segment "_SYSSMU154_3691636531$";



  2970. ---- 查询undo段
  2971. strings /u01/app/oracle/oradata/ora11g/system01.dbf | grep _SYSSMU | sort -u >/tmp/system.txt

  2972. more /tmp/system.txt

  2973. 注意:通过system01.dbf查出了,正在使用的undo segment,以上按使用时间做了排序,注意只选择那些排在最前面的(相同回滚段);默认每个undo tablespace 会应用10个undo segments。



  2974. ------- 不能创建undo文件(ORA-01178错误),无备份的情况下采用隐含参数启动数据库
  2975. set line 9999
  2976. col name format a100
  2977. select file#, name,status,enabled from v$datafile;

  2978. select * from v$recover_file;

  2979. alter system set undo_management=manual scope=spfile;
  2980. alter database datafile 3 offline;
  2981. alter system set undo_tablespace=SYSTEM scope=spfile;
  2982. alter system set "_offline_rollback_segments"=true scope=spfile;
  2983. ! strings '/u01/app/oracle/oradata/orcltest/system01.dbf' | grep _SYSSMU | sort -u
  2984.  alter system set
  2985. "_corrupted_rollback_segments"='_SYSSMU3_4004931649$','_SYSSMU3_4160240979$','_SYSSMU34_2573821980$','_SYSSMU35_3476245049$','_SYSSMU36_353473384$','_SYSSMU37_682878819$','_SYSSMU38_2521239011$','_SYSSMU39_1467520375$','_SYSSMU40_753689919$','_SYSSMU4_1126976075$','_SYSSMU4_348804819$','_SYSSMU5_2968973961$','_SYSSMU5_4011504098$','_SYSSMU6_2060978448$','_SYSSMU6_3654194381$','_SYSSMU7_4222772309$','_SYSSMU7_894058185$','_SYSSMU8_3612859353$','_SYSSMU8_87803851$','_SYSSMU9_2370500926$','_SYSSMU9_2370500926$','_SYSSMU9_3945653786$' scope=spfile;
  2986. shutdown immediate;
  2987. startup mount;
  2988. alter database open;
  2989. select segment_name,status,tablespace_name from dba_rollback_segs;
  2990. drop tablespace UNDOTBS1;
  2991. create undo tablespace undotbs1 datafile '/u01/app/oracle/oradata/orcltest/undotbs01.dbf' size 50m autoextend on;
  2992. alter system set undo_tablespace=UNDOTBS1 scope=spfile;
  2993. alter system set undo_management=auto scope=spfile;
  2994. alter system reset "_offline_rollback_segments" scope=spfile sid='*';
  2995. alter system reset "_corrupted_rollback_segments" scope=spfile sid='*';
  2996. shutdown immediate;
  2997. startup



  2998. ---注意回滚段的命名规范:
  2999. 11g: _SYSSMU1_1189172979$、 _SYSSMU2_1189172979$ 。。。_SYSSMU10_1189172979$
  3000. 10g、9i:_SYSSMU1$、_SYSSMU2$、_SYSSMU3$ 。。。。_SYSSMU10$
  3001. 8i 为rollbackspace 即RBS空间:RBS0、RBS1、RBS2 。。。。RBS6
  3002. 7.3 :RB1、RB2.。。。。RB6






  3003. *.LOCAL_LISTENER='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1523)))'
  3004. *.LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1522))';

  3005. ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1523)))';
  3006. ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1522))';

  3007. ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1523)))','(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1522)))';
  3008. ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1522))','(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1523))';



  3009. ALTER SYSTEM REGISTER;






  3010. ------------ 数据文件自动扩展

  3011. alter database datafile 5 autoextend on next 5M;
  3012. 如果是bigfile可以采用: ALTER TABLESPACE TBS2 AUTOEXTEND ON NEXT 20G;

  3013. 修改表空间数据文件大小为不限制的语句为:
  3014. alter database datafile '/oradata/orcl/demo01.dbf' autoextend on maxsize unlimited;

  3015. 创建表空间数据文件大小为不限制的语句为:
  3016. create tablespace demo2 datafile '/oradata/orcl/demo201.dbf' size 10M autoextend on maxsize unlimited;

  3017. ----取消已有数据文件的自动增长方式
  3018. alter database datafile 'i:\oracle\oradata\dmusertbs01.dbf' autoextend off;



  3019. ------------ 根据文件号和块号查询数据库对象
  3020. SELECT tablespace_name,
  3021.        segment_type,
  3022.        owner,
  3023.        segment_name,
  3024.        partition_name
  3025. FROM dba_extents
  3026. WHERE file_id = &file_id
  3027. AND &block_id BETWEEN block_id AND block_id + blocks - 1
  3028. ;



  3029. SELECT ROWID,
  3030.        dbms_rowid.rowid_object(ROWID) object_id,
  3031.        dbms_rowid.rowid_relative_fno(ROWID) file_id,
  3032.        dbms_rowid.rowid_block_number(ROWID) block_id,
  3033.        d.*
  3034. FROM scott.SALGRADE d
  3035. WHERE dbms_rowid.rowid_block_number(ROWID) = 163
  3036. AND dbms_rowid.rowid_relative_fno(ROWID) = 4;


  3037. SELECT DBMS_ROWID.ROWID_CREATE(1,
  3038.                                (SELECT DATA_OBJECT_ID
  3039.                                   FROM DBA_OBJECTS
  3040.                                  WHERE OBJECT_ID = ROW_WAIT_OBJ#),
  3041.                                ROW_WAIT_FILE#,
  3042.                                ROW_WAIT_BLOCK#,
  3043.                                ROW_WAIT_ROW#),
  3044.        A.ROW_WAIT_OBJ#,
  3045.        A.ROW_WAIT_FILE#,
  3046.        A.ROW_WAIT_BLOCK#,
  3047.        A.ROW_WAIT_ROW#,
  3048.        (SELECT D.OWNER || '.' || D.OBJECT_NAME
  3049.           FROM DBA_OBJECTS D
  3050.          WHERE OBJECT_ID = ROW_WAIT_OBJ#) OBJECT_NAME
  3051.   FROM V$SESSION A
  3052.  WHERE A.ROW_WAIT_OBJ# <> -1;
  3053.  
  3054.  
  3055.  SELECT * FROM SYS.COM$ A WHERE A.ROWID='AAAACJAABAAAARGAAA';






  3056. ---------------------- 删除主键及主键索引
  3057.  
  3058. alter table table_name drop primary key cascade drop index;
  3059. alter table table_name drop constraint constraint_name cascade drop index;


  3060. --------------------------------------------------------- awr


  3061. ----- 生成awr
  3062. select * from table(dbms_workload_repository.awr_report_html(3424884828,1,1161,1165));
  3063. @$ORACLE_HOME/rdbms/admin/awrrpt.sql;


  3064. ----视图


  3065. select * from DBA_HIST_WR_CONTROL;
  3066. select * from DBA_HIST_SNAPSHOT;
  3067. select * from DBA_HIST_ACTIVE_SESS_HISTORY;
  3068. select * from DBA_HIST_ASH_SNAPSHOT;

  3069. select * from DBA_HIST_SEG_STAT;
  3070. select * from DBA_HIST_SQLBIND;
  3071. select * from DBA_HIST_SQLSTAT;
  3072. select * from DBA_HIST_SQLTEXT;
  3073. select * from DBA_HIST_SQL_BIND_METADATA;
  3074. select * from DBA_HIST_SQL_PLAN;



  3075. --------- sql部分
  3076. select &begin_snap || '~' || &end_snap snap_id_range,
  3077.        (SELECT round(sum(db_time) / 1000000 / 60, 2) db_time_m
  3078.           FROM (select lead(a.value, 1, null) over(partition by b.startup_time order by b.end_interval_time) - a.value db_time
  3079.                   from dba_hist_sys_time_model a, dba_hist_snapshot b
  3080.                  where a.snap_id = b.snap_id
  3081.                    and a.dbid = b.dbid
  3082.                    and a.instance_number = b.instance_number
  3083.                    and a.stat_name = 'DB time'
  3084.                    and a.snap_id between &begin_snap and &end_snap)
  3085.          where db_time IS NOT NULL) "db_time(m)",
  3086.        round(nvl((sqt.elap / 1000000), to_number(null)), 2) "Elapsed Time (s)",
  3087.        round(nvl((sqt.cput / 1000000), to_number(null)), 2) "CPU Time (s)",
  3088.        round(nvl((sqt.iowait_delta / 1000000), to_number(null)), 2) "User I/O Time (s)",
  3089.        round(nvl((sqt.buffer_gets_delta), to_number(null)), 2) "Buffer Gets",
  3090.        round(nvl((sqt.disk_reads_delta), to_number(null)), 2) "Physical Reads",
  3091.        round(nvl((sqt.rows_processed_delta), to_number(null)), 2) "Rows Processed",
  3092.        round(nvl((sqt.parse_calls_delta), to_number(null)), 2) "Parse Calls",
  3093.        sqt.exec executions,
  3094.        round(decode(sqt.exec,
  3095.                     0,
  3096.                     to_number(null),
  3097.                     (sqt.elap / sqt.exec / 1000000)),
  3098.              2) "Elapsed Time per Exec (s)",
  3099.        round(decode(sqt.exec,
  3100.                     0,
  3101.                     to_number(null),
  3102.                     (sqt.cput / sqt.exec / 1000000)),
  3103.              2) "CPU per Exec (s)",
  3104.        round(decode(sqt.exec,
  3105.                     0,
  3106.                     to_number(null),
  3107.                     (sqt.iowait_delta / sqt.exec / 1000000)),
  3108.              2) "UIO per Exec (s)",
  3109.        round(sqt.cput * 100 / sqt.elap, 2) "%CPU",
  3110.        round(sqt.iowait_delta * 100 / sqt.elap, 2) "%IO",
  3111.        round(sqt.elap * 100 /
  3112.              (SELECT sum(db_time)
  3113.                 FROM (select lead(a.value, 1, null) over(partition by b.startup_time order by b.end_interval_time) - a.value db_time
  3114.                         from dba_hist_sys_time_model a, dba_hist_snapshot b
  3115.                        where a.snap_id = b.snap_id
  3116.                          and a.dbid = b.dbid
  3117.                          and a.instance_number = b.instance_number
  3118.                          and a.stat_name = 'DB time'
  3119.                          and a.snap_id between &begin_snap and &end_snap)
  3120.                where db_time IS NOT NULL),
  3121.              2) "elapsed/dbtime",
  3122.        sqt.sql_id,
  3123.        parsing_schema_name,
  3124.        (decode(sqt.module, null, null, sqt.module)) module,
  3125.        nvl((select dbms_lob.substr(st.sql_text, 2000, 1)
  3126.              from dba_hist_sqltext st
  3127.             WHERE st.sql_id = sqt.sql_id
  3128.               and st.dbid = sqt.dbid),
  3129.            (' ** SQL Text Not Available ** ')) sql_text
  3130.   from (select sql_id,
  3131.                a.dbid,
  3132.                a.parsing_schema_name,
  3133.                max(module || '--' || a.action) module,
  3134.                sum(elapsed_time_delta) elap,
  3135.                sum(cpu_time_delta) cput,
  3136.                sum(executions_delta) exec,
  3137.                SUM(a.iowait_delta) iowait_delta,
  3138.                sum(a.buffer_gets_delta) buffer_gets_delta,
  3139.                sum(a.disk_reads_delta) disk_reads_delta,
  3140.                sum(a.rows_processed_delta) rows_processed_delta,
  3141.                sum(a.parse_calls_delta) parse_calls_delta
  3142.           from dba_hist_sqlstat a
  3143.          where &begin_snap < snap_id
  3144.            and snap_id <= &end_snap
  3145.          group by sql_id, parsing_schema_name, a.dbid) sqt
  3146.  order by nvl(sqt.elap, -1) desc, sqt.sql_id
  3147. ;

  3148. --------- 信息
  3149. select s.snap_date,
  3150.        snap_time_range,
  3151.        t.snap_id + 1 snap_id,
  3152.        decode(s.redosize, null, '--shutdown or end--', s.currtime) "TIME",
  3153.        startup_time,
  3154.        to_char(round(s.seconds / 60, 2)) "elapse(min)",
  3155.        round(t.db_time / 1000000 / 60, 2) "DB time(min)",
  3156.        s.redosize redo,
  3157.        round(s.redosize / s.seconds, 2) "redo/s",
  3158.        round(s.redosize / s.transactions, 2) "redo/t",
  3159.        s.logicalreads logical,
  3160.        round(s.logicalreads / s.seconds, 2) "logical/s",
  3161.        round(s.logicalreads / s.transactions, 2) "logical/t",
  3162.        physicalreads physical,
  3163.        round(s.physicalreads / s.seconds, 2) "phy/s",
  3164.        round(s.physicalreads / s.transactions, 2) "phy/t",
  3165.        s.executes execs,
  3166.        round(s.executes / s.seconds, 2) "execs/s",
  3167.        round(s.executes / s.transactions, 2) "execs/t",
  3168.        s.parse,
  3169.        round(s.parse / s.seconds, 2) "parse/s",
  3170.        round(s.parse / s.transactions, 2) "parse/t",
  3171.        s.hardparse,
  3172.        round(s.hardparse / s.seconds, 2) "hardparse/s",
  3173.        round(s.hardparse / s.transactions, 2) "hardparse/t",
  3174.        s.transactions trans,
  3175.        round(s.transactions / s.seconds, 2) "trans/s"
  3176.   from (select curr_redo - last_redo redosize,
  3177.                curr_logicalreads - last_logicalreads logicalreads,
  3178.                curr_physicalreads - last_physicalreads physicalreads,
  3179.                curr_executes - last_executes executes,
  3180.                curr_parse - last_parse parse,
  3181.                curr_hardparse - last_hardparse hardparse,
  3182.                curr_transactions - last_transactions transactions,
  3183.                round(((currtime + 0) - (lasttime + 0)) * 3600 * 24, 0) seconds,
  3184.                to_char(currtime, 'yyyy-mm-dd') snap_date,
  3185.                to_char(currtime, 'hh24:mi') currtime,
  3186.                to_char(lasttime, 'YYYY-MM-DD HH24:MI') || '~' ||
  3187.                to_char(currtime, 'YYYY-MM-DD HH24:MI') snap_time_range,
  3188.                currsnap_id endsnap_id,
  3189.                to_char(startup_time, 'yyyy-mm-dd hh24:mi:ss') startup_time
  3190.           from (select a.redo last_redo,
  3191.                        a.logicalreads last_logicalreads,
  3192.                        a.physicalreads last_physicalreads,
  3193.                        a.executes last_executes,
  3194.                        a.parse last_parse,
  3195.                        a.hardparse last_hardparse,
  3196.                        a.transactions last_transactions,
  3197.                        lead(a.redo, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_redo,
  3198.                        lead(a.logicalreads, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_logicalreads,
  3199.                        lead(a.physicalreads, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_physicalreads,
  3200.                        lead(a.executes, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_executes,
  3201.                        lead(a.parse, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_parse,
  3202.                        lead(a.hardparse, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_hardparse,
  3203.                        lead(a.transactions, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_transactions,
  3204.                        b.end_interval_time lasttime,
  3205.                        lead(b.end_interval_time, 1, null) over(partition by b.startup_time order by b.end_interval_time) currtime,
  3206.                        lead(b.snap_id, 1, null) over(partition by b.startup_time order by b.end_interval_time) currsnap_id,
  3207.                        b.startup_time
  3208.                   from (select snap_id,
  3209.                                dbid,
  3210.                                instance_number,
  3211.                                sum(decode(stat_name, 'redo size', value, 0)) redo,
  3212.                                sum(decode(stat_name,
  3213.                                           'session logical reads',
  3214.                                           value,
  3215.                                           0)) logicalreads,
  3216.                                sum(decode(stat_name,
  3217.                                           'physical reads',
  3218.                                           value,
  3219.                                           0)) physicalreads,
  3220.                                sum(decode(stat_name, 'execute count', value, 0)) executes,
  3221.                                sum(decode(stat_name,
  3222.                                           'parse count (total)',
  3223.                                           value,
  3224.                                           0)) parse,
  3225.                                sum(decode(stat_name,
  3226.                                           'parse count (hard)',
  3227.                                           value,
  3228.                                           0)) hardparse,
  3229.                                sum(decode(stat_name,
  3230.                                           'user rollbacks',
  3231.                                           value,
  3232.                                           'user commits',
  3233.                                           value,
  3234.                                           0)) transactions
  3235.                           from dba_hist_sysstat
  3236.                          where stat_name in
  3237.                                ('redo size',
  3238.                                 'session logical reads',
  3239.                                 'physical reads',
  3240.                                 'execute count',
  3241.                                 'user rollbacks',
  3242.                                 'user commits',
  3243.                                 'parse count (hard)',
  3244.                                 'parse count (total)')
  3245.                          group by snap_id, dbid, instance_number) a,
  3246.                        dba_hist_snapshot b
  3247.                  where a.snap_id = b.snap_id
  3248.                    and a.dbid = b.dbid
  3249.                    and a.instance_number = b.instance_number
  3250.                  order by end_interval_time)) s,
  3251.        (select lead(a.value, 1, null) over(partition by b.startup_time order by b.end_interval_time) - a.value db_time,
  3252.                lead(b.snap_id, 1, null) over(partition by b.startup_time order by b.end_interval_time) endsnap_id,
  3253.                b.snap_id
  3254.           from dba_hist_sys_time_model a, dba_hist_snapshot b
  3255.          where a.snap_id = b.snap_id
  3256.            and a.dbid = b.dbid
  3257.            and a.instance_number = b.instance_number
  3258.            and a.stat_name = 'DB time') t
  3259.  where s.endsnap_id = t.endsnap_id
  3260.  order by s.snap_date desc, snap_id desc, time asc;


  3261.  ----主机信息
  3262.  SELECT s.snap_id,
  3263.        DB_NAME,
  3264.        s.dbid,
  3265.        INSTANCE_NAME,
  3266.        s.instance_number,
  3267.        s.startup_time,
  3268.        Version Release,
  3269.        PARALLEL RAC,
  3270.        HOST_NAME,
  3271.        di.platform_name,
  3272.        v.cpus CPUS,
  3273.        v.cores,
  3274.        v.sockets,
  3275.        v.Memory "Memory (GB)"
  3276. FROM DBA_HIST_DATABASE_INSTANCE di,
  3277.        DBA_HIST_SNAPSHOT s,
  3278.        (SELECT snap_id,
  3279.                dbid,
  3280.                instance_number,
  3281.                SUM(CPUs) CPUs,
  3282.                SUM(Cores) Cores,
  3283.                SUM(Sockets) Sockets,
  3284.                SUM(Memory) Memory
  3285.         FROM (SELECT o.snap_id,
  3286.                        o.dbid,
  3287.                        o.instance_number,
  3288.                        decode(o.stat_name, 'NUM_CPUS', o.value) CPUs,
  3289.                        decode(o.stat_name, 'NUM_CPU_CORES', o.value) Cores,
  3290.                        decode(o.stat_name, 'NUM_CPU_SOCKETS', o.value) Sockets,
  3291.                        decode(o.stat_name,
  3292.                               'PHYSICAL_MEMORY_BYTES',
  3293.                               trunc(o.value / 1024 / 1024 / 1024, 2)) Memory
  3294.                 FROM dba_hist_osstat o
  3295.                 WHERE o.stat_name IN
  3296.                        ('NUM_CPUS',
  3297.                         'NUM_CPU_CORES',
  3298.                         'NUM_CPU_SOCKETS',
  3299.                         'PHYSICAL_MEMORY_BYTES'))
  3300.         GROUP BY snap_id,
  3301.                   dbid,
  3302.                   instance_number) v
  3303. WHERE s.instance_number = di.instance_number
  3304. AND s.startup_time = di.startup_time
  3305. AND s.dbid = di.dbid
  3306. AND s.snap_id = v.snap_id
  3307. AND s.dbid = s.dbid
  3308. AND s.instance_number = v.instance_number;




  3309. ------------------------------------------------------------------------------------------ 临时表
  3310. 基于事务: create global temporary table lhr.cgtt_temp_sw on commit delete rows as select * from dba_objects;
  3311. 创建索引:create index ind_cgtt_object_ID on cgtt_temp_sw(object_ID);

  3312. 基于会话: create global temporary table lhr.cgtt_temp_hh on commit preserve rows as select * from dba_objects;
  3313. 创建索引:需重开会话: create index ind_cgtt_object_ID2 on cgtt_temp_hh(object_ID);


  3314. select * from VW_TEMP_OBJECT_LHR;

  3315. Select se.username,
  3316.         se.sid,
  3317.         su.extents,
  3318.         (su.blocks *
  3319.         to_number((select rtrim(value)
  3320.                      from v$parameter p
  3321.                     WHERE p.NAME = 'db_block_size'))) / 1024 / 1024 as Size_m,
  3322.         tablespace,
  3323.         segtype,
  3324.         (SELECT a.SQL_TEXT
  3325.            FROM v$sql a
  3326.           WHERE a.SQL_ID = su.SQL_ID
  3327.             and rownum = 1) SQL_TEXT
  3328.    from v$sort_usage su, v$session se
  3329.   where su.session_addr = se.saddr
  3330.   order by se.username, se.sid;

  3331. -------------------------------------- catalog库
  3332. SQL> create tablespace rman_ts datafile '/lhrdata/u01/app/oracle/oradata/orcllinux/rman.dbf' size 1G;
  3333. 表空间已创建。
  3334. SQL> create user rc identified by lhr default tablespace rman_ts quota unlimited on rman_ts;
  3335. 用户已创建。
  3336. SQL> grant recovery_catalog_owner to rc;---包含了connect的角色权限
  3337. 授权成功。
  3338. SQL> grant RESOURCE to rc;
  3339. 授权成功。
  3340. SQL> HOST
  3341. [oracle@lhr_linux ~]$ rman catalog rc/lhr
  3342. 恢复管理器: Release 11.2.0.1.0 - Production on 星期四 4月 10 15:08:22 2014
  3343. Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
  3344. 连接到恢复目录数据库
  3345. RMAN> create catalog tablespace rman_ts;
  3346. 恢复目录已创建
  3347. RMAN> connect target /
  3348. 连接到目标数据库: ORCLLINU (DBID=534927627)
  3349. RMAN> register database;
  3350. 注册在恢复目录中的数据库
  3351. 正在启动全部恢复目录的 resync
  3352. 完成全部 resync
  3353. RMAN> exit


  3354. ---------- 用户profile
  3355. alter user lhr profile default;
  3356. alter system set resource_limit=true;
  3357. alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;
  3358. alter profile default limit FAILED_LOGIN_ATTEMPTS UNLIMITED;


  3359. /oracle/app/oraInventory/ContentsXML/inventory.xml
  3360. oracle执行:$ORACLE_HOME/oui/bin/attachHome.sh


  3361. -------------------------------------------- 卸载软件 GRID
  3362. kill -9 `ps -ef|grep d.bin| grep -v grep | awk '{print $2}'`



  3363. 卸载GRID软件,grid用户执行:$ORACLE_HOME/deinstall/deinstall
  3364. 卸载ORACLE软件,oracle用户执行:$ORACLE_HOME/deinstall/deinstall

  3365. 在Linux下手工卸载RAC的步骤:
  3366. ① rm -rf /etc/ora*
  3367. ② rm -rf /var/tmp/.oracle
  3368. ③ 修改/etc/inittab删除以下三行
  3369.     h1:2:respawn:/etc/init.evmd run >/dev/null 2>&1 </dev/null
  3370.     h2:2:respawn:/etc/init.cssd fatal >/dev/null 2>&1 </dev/null
  3371.     h3:2:respawn:/etc/init.crsd run >/dev/null 2>&1 </dev/null
  3372. ④ rm -rf /tmp/*
  3373. ⑤ rm -rf /u01/app/grid/* ---删除GRID目录
  3374. ⑥ rm -rf /u01/app/oracle/* --删除ORACLE目录
  3375. ⑦ rm -rf /u01/app/oraInventory/*
  3376. ⑧ 清除OCR、Voting及数据库使用过的磁盘
  3377.     dd if=/dev/zero of=/dev/raw/raw1 bs=104857600 count=1
  3378.     dd if=/dev/zero of=/dev/raw/raw2 bs=104857600 count=1
  3379. 最后,重启2个节点*/

  3380. -------重建路径
  3381. mkdir -p /u01/app/oracle
  3382. mkdir -p /u01/app/grid
  3383. mkdir -p /u01/app/12.1.0/grid
  3384. mkdir -p /u01/app/oracle/product/12.1.0/dbhome_1
  3385. chown -R grid:oinstall /u01/app/grid
  3386. chown -R grid:oinstall /u01/app/12.1.0
  3387. chown -R oracle:oinstall /u01/app/oracle
  3388. chmod -R 775 /u01

  3389. mkdir -p /u01/app/oraInventory
  3390. chown -R grid:oinstall /u01/app/oraInventory
  3391. chmod -R 775 /u01/app/oraInventory


  3392. 在Windows下手工卸载RAC的步骤:
  3393. ① 开始->设置->控制面板->管理工具->服务,或运行services.msc打开服务,停止所有Oracle服务
  3394. ② 删除Oracle和GRID的安装目录
  3395. ③ 删除C:\Program Files\Oracle目录
  3396. ④ 删除C:\windows\temp和C:\temp以及C:\Users\Administrator\Oracle下的文件
  3397. ⑤ 运行regedit,打开注册表编辑器,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,删除该项
  3398. ⑥ 运行regedit,打开注册表编辑器,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动这个列表,删除所有Oracle开头的项
  3399. ⑦ 运行regedit,打开注册表编辑器,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有Oracle入口
  3400. ⑧ 开始->设置->控制面板->系统->高级->环境变量,删除环境变量CLASSPATH和PATH中有关Oracle的设定
  3401. ⑨ 从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标
  3402. ⑩ 重新启动计算机,重起后才能完全删除Oracle所在目录
  3403. 若个别文件不能删除,则说明该文件与某个Windows服务相关联,可以先把相关联的服务停止后再删除。



  3404. -- 加入常用命令
  3405. vi /etc/profile
  3406. export GRID_HOME=/u01/app/12.1.0/grid
  3407. export PATH=$PATH:$GRID_HOME/bin


  3408. ---------------- 重新执行root.sh
  3409. ---kill -9 `ps -ef|grep d.bin| grep -v grep | awk '{print $2}'`
  3410. ---$ORACLE_HOME 为 GRID_HOME的路径,执行之前最好先手动把数据库资源关闭
  3411. 日志地址:$ORACLE_HOME/cfgtoollogs/crsconfig/
  3412. 重置的日志文件:hadelete.log
  3413. root.sh脚本日志:rootcrs_rac2.log


  3414. --------------① 脚本方式
  3415. ---执行失败,重新执行root.sh脚本
  3416. $ORACLE_HOME/crs/install/crsconfig_params
  3417. $ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose
  3418. --$ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose -lastnode -keepdg
  3419. dd if=/dev/zero of=/dev/rhdiskN bs=1024k count=1024
  3420. lquerypv -h /dev/rhdisk5
  3421. $ORACLE_HOME/root.sh


  3422. $ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose
  3423. --$ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose -lastnode -keepdg
  3424. $ORACLE_HOME/root.sh

  3425. ---$ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose执行完成之后需要删除如下的文件
  3426. ls -l $ORACLE_BASE/Clusterware/ckptGridHA* */
  3427. find $ORACLE_HOME/gpnp/* -type f */
  3428. find $ORACLE_HOME/gpnp/* -type f -exec rm -rf {} \; */




  3429. --------------② 界面方式
  3430. ---------------删除两节点crsconfig_params中的DATA1和磁盘 界面方式
  3431. $ORACLE_HOME/crs/install/crsconfig_params
  3432. ASM_DISK_GROUP=DATA1
  3433. ASM_DISKS=/dev/rhdisk5
  3434. --root
  3435. $ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose
  3436. -- GRID
  3437. export DISPLAY=22.188.216.132:0.0
  3438. $ORACLE_HOME/crs/config/config.sh





  3439. CRS-4124: Oracle High Availability Services startup failed. -- 报错
  3440. CRS-4000: Command Start failed, or completed with errors.
  3441. ohasd failed to start: Inappropriate ioctl for device
  3442. ohasd failed to start: Inappropriate ioctl for device at /u01/app/11.2.0/grid/crs/install/roothas.pl line 296.
  3443. /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1


  3444. /nfs/software/db/install/clone/sh/11g/grid/runcluvfy.sh stage -pre crsinst -n ZFLHRDB1,ZFLHRDB2 -verbose -fixup

  3445. $ORACLE_HOME/bin/cluvfy stage -pre crsinst -n all -verbose -fixup


  3446. find . -name runcluvfy.sh


  3447. ---GRID_HOME权限修复
  3448. 方法1:11gR2可以deconfig crs的配置,然后重新跑root.sh即可。重新跑root.sh脚本并不影响数据库,所以无需担心(个人推荐的一种方式).
  3449. $ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose
  3450. $ORACLE_HOME/root.sh

  3451. 方法2:根据Mos文档提供的建议通过 $GRID_HOME/crs/install/rootcrs.pl -init 或 roothas.pl -init进行解决. rootcrs.pl –init是在PSU>11.2.0.3.6下执行的,如果PSU<11.2.0.3.6可以执行如下两条命令来实现同样的效果
  3452. <GRID_HOME>/crs/install/rootcrs.pl -unlock
  3453. <GRID_HOME>/crs/install/rootcrs.pl -patch

  3454. For 11.2:
  3455. For clustered Grid Infrastructure, as root user
  3456. # cd <GRID_HOME>/crs/install/
  3457. # ./rootcrs.pl -init
  3458. For Standalone Grid Infrastructure, as root user
  3459. # cd <GRID_HOME>/crs/install/
  3460. # ./roothas.pl  -init

  3461. For 12c:
  3462. For clustered Grid Infrastructure, as root user
  3463. # cd <GRID_HOME>/crs/install/
  3464. # ./rootcrs.sh -init
  3465. For Standalone Grid Infrastructure, as root user
  3466. # cd <GRID_HOME>/crs/install/
  3467. # ./roothas.sh -init









  3468. ---查看psu
  3469. /nfs/software/db/install/chk/chkora.sh
  3470. opatch lsinventory -bugs_fixed | grep 'PSU'
  3471. opatch lsinv
  3472. [ZFCASSDB1:grid]:/home/grid>opatch lspatches
  3473. 13343438;Database Patch Set Update : 11.2.0.3.1 (13343438)
  3474. 13348650;Grid Infrastructure Patch Set Update : 11.2.0.3.1 (13348650)
  3475. [ZFCASSDB1:grid]:/home/grid>

  3476. col action_time for a30
  3477. col action for a10
  3478. col namespace for a10
  3479. col version for a10
  3480. col bundle_series for a10
  3481. col comments for a30

  3482. SELECT to_char(action_time, 'YYYY-MM-DD HH24:MI:SS') action_time,
  3483.        action,
  3484.        namespace,
  3485.        version,
  3486.        id,
  3487.        bundle_series,
  3488.        comments
  3489.   FROM dba_registry_history D;

  3490. select action,comments from registry$history;


  3491. ---grid和oracle分别回滚
  3492. $ORACLE_HOME/OPatch/opatch rollback -local -id 13348650 -oh /oracle/app/oracle/product/11.2.0/db



  3493. ----------------------------- OCR备份
  3494. --逻辑备份恢复
  3495. ocrconfig -export /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/export_asm.bak
  3496. ocrconfig -import /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/export_asm_lhr.bak
  3497. crsctl stop crs
  3498. crsctl start crs -excl -nocrs
  3499. ocrconfig -import /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/export_asm_lhr.bak
  3500. crsctl start crs



  3501. --物理备份恢复
  3502. ocrconfig -manualbackup
  3503. ocrconfig -showbackup

  3504. cluvfy comp ocr -n all -verbose
  3505. cluvfy comp olr -verbose


  3506. crsctl stop crs -f
  3507. crsctl start crs -excl -nocrs
  3508. crsctl stop resource ora.crsd -init
  3509. ocrconfig -restore /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/backup_20160701_152358.ocr
  3510. crsctl stop has -f
  3511. crsctl start crs


  3512. crsctl query css votedisk

  3513.  
  3514. --------dd备份恢复OCR 注:11g不推荐使用dd来进行备份恢复,盘头一般是前4K
  3515. --备份表决磁盘:
  3516. dd if=/dev/raw/raw3 of=/tmp/votedisk_lhr.bak bs=1024k count=4
  3517. --恢复表决磁盘:
  3518. dd if=/tmp/votedisk_lhr.bak of=/dev/raw/raw3 bs=1024k count=4


  3519. ----------kfed修复磁盘头
  3520. dd if=/dev/rhdisk2 of=/asm_rhdisk2_dd.bak bs=1024 count=4
  3521. dd if=/dev/zero of=/dev/rhdisk2 bs=1024 count=4
  3522. kfed repair /dev/rhdisk2

  3523. ----md_backup修复磁盘头
  3524. asmcmd md_backup /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/asm_md_backup.bak
  3525. asmcmd md_restore /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/asm_md_backup.bak


  3526. dd if=/dev/rhdisk2 of=/asm_rhdisk2_dd.bak bs=1024k count=4
  3527. dd if=/dev/zero of=/dev/rhdisk2 bs=1024k count=4
  3528. crsctl stop has -f
  3529. crsctl start has
  3530. ASMCMD [+] > startup force nomount;
  3531. ASMCMD [+] > md_restore /asm_rhdisk2_dd.bak


  3532. ASMCMD [+] > md_backup /rman/asm_md.bak
  3533. dd if=/dev/zero of=/dev/rhdisk2 bs=1024 count=4
  3534. crsctl stop has -f
  3535. crsctl start has
  3536. ASMCMD [+] > startup force nomount;
  3537. ASMCMD [+] > md_restore /rman/asm_md.bak


  3538. -------- OLR的备份恢复
  3539. <GI_HOME>/bin/ocrconfig -local -manualbackup
  3540. <GI_HOME>/bin/ocrconfig -local -showbackup

  3541. ps -ef| grep ohasd.bin
  3542. <GI_HOME>/bin/crsctl stop crs -f <========= for GI Cluster
  3543. <GI_HOME>/bin/crsctl stop has <========= for GI Standalone
  3544. <GI_HOME>/bin/ocrconfig -local -restore <olr-backup>
  3545. <GI_HOME>/bin/crsctl start crs <========= for GI Cluster
  3546. <GI_HOME>/bin/crsctl start has <========= for GI Standalone, this must be done as grid user.





  3547. vi crsstat_lhr.sh
  3548. awk 'BEGIN {printf "%-26s %-26s %-10s %-10s %-10s \n","Name ","Type ","Target ","State ","Host "; printf "%-30s %-26s %-10s %-10s %-10s\n","----------------------------------------","--------------------------","----------", "---------","----------";}'
  3549. crs_stat | awk 'BEGIN { FS="=| ";state = 0;} $1~/NAME/ {appname = $2; state=1}; state == 0 {next;} $1~/TYPE/ && state == 1 {apptype = $2; state=2;} $1~/TARGET/ && state == 2 {apptarget = $2; state=3;} $1~/STATE/ && state == 3 {appstate = $2; apphost = $4; state=4;} state == 4 {printf "%-40s %-26s %-10s %-10s %-10s\n", appname,apptype,apptarget,appstate,apphost; state=0;}'



  3550. -------------------------------------------------------------- OEM
  3551.  --重建:
  3552.  emca -config dbcontrol db -repos recreate
  3553.  emca -config dbcontrol db -repos recreate -cluster


  3554. http://192.168.59.130:1158/em/
  3555. https://192.168.59.128:1158/em/

  3556. 日志:
  3557. $ORACLE_HOME/$hostname_$oracle_sid/sysman/log

  3558. 4.安装过程中出现问题的时候认真查看日志,安装日志路径:$ORACLE_HOME/cfgtoollogs\emca\
  3559. 5.OEM运行日志:$ORACLE_HOME/$hostname_$oracle_sid/sysman/log
  3560. 6.建议重新创建,在oracle用户下:
  3561. 单机: emca -config dbcontrol db -repos recreate
  3562. 集群: emca -config dbcontrol db -repos recreate -cluster
  3563. 若是集群环境,则在创建之前先在grid用户下执行如下代码:
  3564. -----sqlplus / as sysasm ASM实例 GRID 用户下执行
  3565. SYS@+ASM1> create user asmsnmp identified by xxx;
  3566. SYS@+ASM1> grant sysdba to asmsnmp;
  3567. SYS@+ASM1> alter user asmsnmp identified by xxx;
  3568. SYS@+ASM1> alter system set remote_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ZFZHLHRDB-scan)(PORT=1521))))' sid='*';
  3569.     SYS@+ASM1> alter system register;
  3570. 7.启动和关闭维护命令,oracle用户下:export ORACLE_UNQNAME=$DB_UNIQUE_NAME ,数据库唯一名,进程:ps -ef| grep em
  3571.     启动: emctl stop dbconsole
  3572. 关闭: emctl stop dbconsole
  3573. 运行状态:emctl status dbconsole


  3574. -------------------------------------------- dbca 静默建库 windows 和 linux 命令一样

  3575. ------归档
  3576. vi $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc

  3577. 修改为:<archiveLogMode>true</archiveLogMode>

  3578. [oracle@rhel6_lhr ~]$ strings $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc | grep -i arch
  3579.          <archiveLogMode>false</archiveLogMode>





  3580. ----静默安装数据库日志路径:
  3581. 11g:$ORACLE_BASE/cfgtoollogs/dbca
  3582. 10g:$ORACLE_HOME/cfgtoollogs/dbca


  3583. ---dbca -silent整理 \ 后不能包含空格
  3584. dbca -silent -deleteDatabase -sourceDB mydb
  3585. dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
  3586. -gdbname mydb -sid mydb \
  3587. -sysPassword oracle -systemPassword oracle \
  3588. -datafileDestination 'DATA/' -recoveryAreaDestination 'DATA/' \
  3589. -redoLogFileSize 50 \
  3590. -storageType ASM -asmsnmpPassword oracle -diskGroupName 'DATA' \
  3591. -characterset AL32UTF8 -nationalCharacterSet AL16UTF16 \
  3592. -sampleSchema true \
  3593. -automaticMemoryManagement true -totalMemory 2048 \
  3594. -databaseType OLTP \
  3595. -emConfiguration NONE \
  3596. -nodeinfo ZFZHLHRDB1,ZFZHLHRDB2

  3597. dbca -silent -deleteDatabase -sourceDB mydb
  3598. dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
  3599. -gdbname mydb -sid mydb \
  3600. -sysPassword oracle -systemPassword oracle \
  3601. -datafileDestination '/u05/app/oracle' -recoveryAreaDestination '/u05/app/oracle' \
  3602. -storageType FS \
  3603. -characterset AL32UTF8 -nationalCharacterSet AL16UTF16 \
  3604. -sampleSchema false \
  3605. -memoryPercentage 10 \
  3606. -databaseType OLTP \
  3607. -emConfiguration NONE


  3608. ---10g
  3609. dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
  3610. -gdbname mydg -sid mydg \
  3611. -sysPassword lhr -systemPassword lhr \
  3612. -datafileDestination '/cds/oradata' -recoveryAreaDestination '/cds/oradata' \
  3613. -storageType FS \
  3614. -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 \
  3615. -sampleSchema true \
  3616. -memoryPercentage 20 \
  3617. -databaseType OLTP \
  3618. -emConfiguration NONE


  3619. --12C
  3620. dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname oradb.example.com -sid oradb -responseFile NO_VALUE -characterSet AL32UTF8 -memoryPercentage 30 -emConfiguration NONE
  3621. dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
  3622. -gdbname lhrdb -sid lhrdb \
  3623. -createAsContainerDatabase false \
  3624. -sysPassword lhr -systemPassword lhr -serviceUserPassword lhr \
  3625. -datafileDestination '/u01/app/oracle' -recoveryAreaDestination '/u01/app/oracle' \
  3626. -storageType FS \
  3627. -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 \
  3628. -sampleSchema true \
  3629. -memoryPercentage 30 \
  3630. -databaseType OLTP \
  3631. -emConfiguration NONE

  3632. --12C rac
  3633. dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
  3634. -gdbname lhrrac -sid lhrrac \
  3635. -createAsContainerDatabase false \
  3636. -sysPassword lhr -systemPassword lhr -serviceUserPassword lhr \
  3637. -datafileDestination 'DATA/' -recoveryAreaDestination 'FRA/' \
  3638. -storageType ASM -asmsnmpPassword oracle -diskGroupName 'DATA' \
  3639. -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 \
  3640. -sampleSchema true \
  3641. -memoryPercentage 30 \
  3642. -databaseType OLTP \
  3643. -emConfiguration NONE \
  3644. -nodeinfo raclhr-12cR1-N1,raclhr-12cR1-N2



  3645. --11g
  3646. dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora11g -sid ora11g -sysPassword lhr -systemPassword lhr -responseFile NO_VALUE -datafileDestination /u01/app/oracle/oradata -redoLogFileSize 50 -recoveryAreaDestination /u01/app/oracle/flash_recovery_area -storageType FS -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -memoryPercentage 30 -totalMemory 200 -databaseType OLTP -emConfiguration NONE -automaticMemoryManagement true
  3647. dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora11g -sid ora11g -responseFile NO_VALUE -datafileDestination /u01/app/oracle/oradata -characterSet AL32UTF8

  3648. ----ASM 存储 单实例
  3649. dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora11g -sid ora11g -sysPassword lhr -systemPassword lhr -responseFile NO_VALUE -datafileDestination 'DATA/' -redoLogFileSize 50 -recoveryAreaDestination 'TEST/' -storageType ASM -asmsnmpPassword lhr -diskGroupName 'DATA' -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -memoryPercentage 30 -totalMemory 200 -databaseType OLTP -emConfiguration NONE -automaticMemoryManagement true


  3650. ---默认
  3651. --- 闪回恢复区 创建
  3652. --storageType FS
  3653. --sampleSchema 默认创建
  3654. --em 默认不创建



  3655. --10g
  3656. dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora11g -sid ora11g -sysPassword lhr -systemPassword lhr -responseFile NO_VALUE -datafileDestination /u01/app/oracle/oradata -recoveryAreaDestination /u01/app/oracle/flash_recovery_area -storageType FS -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -memoryPercentage 30 -databaseType OLTP -emConfiguration NONE




  3657. ----------------根据模板文件进行安装
  3658. dbca -silent -responseFile $ORACLE_HOME/assistants/dbca/dbca.rsp
  3659. dbca -silent -cloneTemplate -responseFile $ORACLE_HOME/assistants/dbca/dbca.rsp -gdbName orcltest -sid orcltest -datafileDestination /u01/app/oracle/oradata



  3660. -------------------- 根据数据库生成不带数据文件的模板
  3661. dbca -silent -createTemplateFromDB -sourceDB 192.168.59.130:1521:ora10g -templateName dbtemplate_ora10g2_lhr -sysDBAUserName sys -sysDBAPassword lhr

  3662. -------------------- 根据数据库生成带数据文件的模板
  3663. dbca -silent -createCloneTemplate -sourceDB orcltest -sysDBAUserName lhr -sysDBAPassword lhr -templateName dbtemplate_orcltest_lhr -datafileJarLocation
  3664. -------------------- 利用带数据文件的模板生成克隆数据库
  3665. dbca -silent -createDatabase -templateName dbtemplate_orcltest_lhr.dbc -gdbname orcl22 -sid orcl22 -sysPassword lhr -systemPassword lhr -datafileJarLocation $ORACLE_HOME/assistants/dbca/templates -datafileDestination /u01/app/oracle/oradata -responseFile NO_VALUE -characterset ZHS16GBK

  3666. -------------------- 利用不带数据文件的模板生成新的数据库 慢,不推荐
  3667. ----dbca -silent -createDatabase -templateName New_Database.dbt -gdbname test33 -sid test33 -datafileDestination /u01/app/oracle/oradata -responseFile NO_VALUE -characterset ZHS16GBK



  3668. ---------------- 删除数据库
  3669. dbca -silent -deleteDatabase -sourceDB orclbb -sysDBAUserName sys -sysDBAPassword lhr



  3670. ------------- linux、AIX下 rac 数据库的创建
  3671. dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname jmrac -sid jmrac -sysPassword lhr -systemPassword lhr -datafileDestination 'DATA/' -redoLogFileSize 50 -recoveryAreaDestination 'ARCH/' -storageType ASM -asmsnmpPassword lhr -diskGroupName 'DATA' -responseFile NO_VALUE -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -automaticMemoryManagement true -totalMemory 500 -nodeinfo node1,node2

  3672. ----windows下创建rac库,注意参数 diskGroupName 为 DATA ,不能带有引号
  3673. dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname winrac -sid winrac -sysPassword lhr -systemPassword lhr -datafileDestination 'DATA/' -redoLogFileSize 50 -recoveryAreaDestination 'FRA/' -storageType ASM -asmsnmpPassword lhr -diskGroupName DATA -responseFile NO_VALUE -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -automaticMemoryManagement true -totalMemory 300 -nodeinfo rac1,rac2


  3674. ----- 或者:
  3675. [oracle@node1 dbca]$ more $ORACLE_HOME/assistants/dbca/dbca_rac.rsp
  3676. [GENERAL]
  3677. RESPONSEFILE_VERSION = "11.2.0"
  3678. OPERATION_TYPE = "createDatabase"
  3679. [CREATEDATABASE]
  3680. GDBNAME = "myrac"
  3681. SID = "myrac"
  3682. NODELIST=node1,node2
  3683. TEMPLATENAME = "General_Purpose.dbc"
  3684. SYSPASSWORD = "lhr"
  3685. SYSTEMPASSWORD = "lhr"
  3686. SYSMANPASSWORD = "lhr"
  3687. DBSNMPPASSWORD = "lhr"
  3688. STORAGETYPE=ASM
  3689. DISKGROUPNAME=DATA
  3690. ASMSNMP_PASSWORD="lhr"
  3691. RECOVERYGROUPNAME=ARCH
  3692. CHARACTERSET = "ZHS16GBK"
  3693. NATIONALCHARACTERSET= "UTF8"
  3694. [oracle@node1 dbca]$ dbca -silent -responseFile $ORACLE_HOME/assistants/dbca/dbca_rac.rsp



  3695. set line 9999
  3696. col HOST_NAME format a10 
  3697. select INSTANCE_NAME,HOST_NAME,VERSION,STARTUP_TIME,STATUS,ACTIVE_STATE,INSTANCE_ROLE,DATABASE_STATUS from gv$INSTANCE;
  3698. select INST_ID,name , open_mode, log_mode,force_logging from gv$database;


  3699. ------------------------------------------------------------------- 静默安装
  3700. ---------- 单实例数据库安装
  3701. vi /tmp/database/response/db_install.rsp
  3702. ORACLE_HOSTNAME=192.168.59.129
  3703. UNIX_GROUP_NAME=oinstall
  3704. INVENTORY_LOCATION=/u02/app/oracle/oraInventory
  3705. SELECTED_LANGUAGES=en,zh_CN
  3706. ORACLE_HOME=/u02/app/oracle/product/11.2.0/dbhome_1
  3707. ORACLE_BASE=/u02/app/oracle
  3708. oracle.install.db.InstallEdition=EE
  3709. oracle.install.db.EEOptionsSelection=false
  3710. oracle.install.db.DBA_GROUP=dba
  3711. oracle.install.db.OPER_GROUP=oper
  3712. oracle.install.db.isRACOneInstall=false
  3713. oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
  3714. SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
  3715. oracle.installer.autoupdates.option=SKIP_UPDATES

  3716. ----软件安装
  3717. ./runInstaller -silent -noconfig -responseFile /tmp/database/response/db_install.rsp -ignoreSysPrereqs -ignorePrereq


  3718. ----静默创建asm实例
  3719. /u01/app/11.2.0/grid/bin/asmca -silent -configureASM -sysAsmPassword lhr -asmsnmpPassword lhr -diskGroupName OCR -diskList /dev/rhdisk20 -redundancy EXTERNAL



  3720. ----监听配置
  3721. $ORACLE_HOME/bin/netca /silent /responsefile /u01/database/netca.rsp
  3722. netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp

  3723. $ORACLE_HOME/bin/netca /silent /responsefile /u01/database/netca.rsp
  3724. netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
  3725. netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp -instype custom -listener LISTENER_LHR
  3726. crsctl delete resource ora.LISTENER.lsnr -f
  3727. rm $ORACLE_HOME/network/admin/listener.ora



  3728. ---------------------------------- 单实例grid安装
  3729. /softtmp/grid/runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \
  3730. ORACLE_HOSTNAME=ZFFR4CB2101 \
  3731. INVENTORY_LOCATION=/u01/app/oraInventory \
  3732. SELECTED_LANGUAGES=en \
  3733. oracle.install.option=CRS_SWONLY \
  3734. ORACLE_BASE=/u01/app/grid \
  3735. ORACLE_HOME=/u01/app/11.2.0/grid \
  3736. oracle.install.asm.OSDBA=asmdba \
  3737. oracle.install.asm.OSOPER=asmoper \
  3738. oracle.install.asm.OSASM=asmadmin \
  3739. oracle.install.crs.config.storageOption=ASM_STORAGE \
  3740. oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=EXTERNAL \
  3741. oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=EXTERNAL \
  3742. oracle.install.crs.config.useIPMI=false \
  3743. oracle.install.asm.SYSASMPassword=lhr \
  3744. oracle.install.asm.diskGroup.name=OCR \
  3745. oracle.install.asm.diskGroup.redundancy=EXTERNAL \
  3746. oracle.install.asm.diskGroup.disks=/dev/rhdisk20 \
  3747. oracle.install.asm.monitorPassword=lhr \
  3748. oracle.installer.autoupdates.option=SKIP_UPDATES


  3749. ---------------------------------- 单实例db安装
  3750. /softtmp/database/runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \
  3751. oracle.install.option=INSTALL_DB_SWONLY \
  3752. DECLINE_SECURITY_UPDATES=true \
  3753. UNIX_GROUP_NAME=oinstall \
  3754. INVENTORY_LOCATION=/u01/app/oraInventory \
  3755. SELECTED_LANGUAGES=en \
  3756. ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 \
  3757. ORACLE_BASE=/u01/app/oracle \
  3758. oracle.install.db.InstallEdition=EE \
  3759. oracle.install.db.isCustomInstall=false \
  3760. oracle.install.db.DBA_GROUP=dba \
  3761. oracle.install.db.OPER_GROUP=dba \
  3762. oracle.install.db.isRACOneInstall=false \
  3763. oracle.install.db.config.starterdb.type=GENERAL_PURPOSE \
  3764. SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
  3765. oracle.installer.autoupdates.option=SKIP_UPDATES


  3766. ---------------------------------- rac grid安装
  3767. ./runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \
  3768. INVENTORY_LOCATION=/u01/app/oraInventory \
  3769. SELECTED_LANGUAGES=en \
  3770. ORACLE_BASE=/u01/app/grid \
  3771. ORACLE_HOME=/u01/app/11.2.0/grid \
  3772. oracle.install.asm.OSDBA=asmdba \
  3773. oracle.install.asm.OSOPER=asmoper \
  3774. oracle.install.asm.OSASM=asmadmin \
  3775. oracle.install.crs.config.storageOption=ASM_STORAGE \
  3776. oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=EXTERNAL \
  3777. oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=EXTERNAL \
  3778. oracle.install.crs.config.useIPMI=false \
  3779. oracle.install.asm.diskGroup.name=OCR \
  3780. oracle.install.asm.diskGroup.redundancy=EXTERNAL \
  3781. oracle.installer.autoupdates.option=SKIP_UPDATES \
  3782. oracle.install.crs.config.gpnp.scanPort=1521 \
  3783. oracle.install.crs.config.gpnp.configureGNS=false \
  3784. oracle.install.option=CRS_CONFIG \
  3785. oracle.install.asm.SYSASMPassword=lhr \
  3786. oracle.install.asm.monitorPassword=lhr \
  3787. oracle.install.asm.diskGroup.diskDiscoveryString=/dev/rhdisk* \
  3788. oracle.install.asm.diskGroup.disks=/dev/rhdisk10 \
  3789. oracle.install.crs.config.gpnp.scanName=ZFFR4CB2101-scan \
  3790. oracle.install.crs.config.clusterName=ZFFR4CB-cluster \
  3791. oracle.install.crs.config.autoConfigureClusterNodeVIP=false \
  3792. oracle.install.crs.config.clusterNodes=ZFFR4CB2101:ZFFR4CB2101-vip,ZFFR4CB1101:ZFFR4CB1101-vip \
  3793. oracle.install.crs.config.networkInterfaceList=en0:22.188.187.0:1,en1:222.188.187.0:2 \
  3794. ORACLE_HOSTNAME=ZFFR4CB2101


  3795. ---------------------------------- rac db安装
  3796. ./runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \
  3797. oracle.install.option=INSTALL_DB_SWONLY \
  3798. DECLINE_SECURITY_UPDATES=true \
  3799. UNIX_GROUP_NAME=oinstall \
  3800. INVENTORY_LOCATION=/u01/app/oraInventory \
  3801. SELECTED_LANGUAGES=en \
  3802. oracle.install.db.InstallEdition=EE \
  3803. oracle.install.db.isCustomInstall=false \
  3804. oracle.install.db.EEOptionsSelection=false \
  3805. oracle.install.db.DBA_GROUP=dba \
  3806. oracle.install.db.OPER_GROUP=asmoper \
  3807. oracle.install.db.isRACOneInstall=false \
  3808. oracle.install.db.config.starterdb.type=GENERAL_PURPOSE \
  3809. SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
  3810. oracle.installer.autoupdates.option=SKIP_UPDATES \
  3811. ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 \
  3812. ORACLE_BASE=/u01/app/oracle \
  3813. ORACLE_HOSTNAME=ZFFR4CB2101 \
  3814. oracle.install.db.CLUSTER_NODES=zffr4cb2101,zffr4cb1101 \
  3815. oracle.install.db.isRACOneInstall=false











  3816. -------自动启动 The Oracle system identifier(SID) "orcltest" already exists. Specify another SID.
  3817. vi /etc/oratab


  3818. ---------启动

  3819.   1)    lsnrctl start     (启动监听) -------监听停止: lsnrctl stop,lsnrctl是listener-control 监听器的缩写,查看监听的状态(lsnrctl status)
  3820.    
  3821.   2)    net start OracleServiceORCL (COCL 我的SID,可以小写,这是开启数据库实例)
  3822. 或者用 oradim –startup –sid orcl -----net stop OracleServiceORACLE




  3823. /********************************************************************************
  3824. *    SQL Scripts Name:    
  3825. *    SQL Scripts Desc:    
  3826. *    Author:    
  3827. *    Date:    
  3828. *    Inputs:    
  3829. *    Outputs:    
  3830. *    Return:    
  3831. *    History:    
  3832. ********************************************************************************/



  3833. --------------- 修改dbid和dbname
  3834. 原: orcltest
  3835. 修改后:DBID: 4270446895 Database Name: ORA11G
  3836. create pfile from spfile;
  3837. shutdown immediate;
  3838. startup mount;
  3839. nid target=sys/lhr dbname=ORA11G
  3840. cp initorcltest.ora initORA11G.ora

  3841. shutdown immediate;
  3842. startup open read only;
  3843. @chang_dbid_lhr.sql
  3844. create pfile from spfile;
  3845. shutdown immediate;



  3846. ------------AUTHID CURRENT_USER
  3847. CREATE OR REPLACE PROCEDURE PRO_XXXX_LHR(p_flag in NUMBER DEFAULT 1,
  3848.                                                   p_result out varchar2)
  3849.   AUTHID CURRENT_USER AS

  3850.   begin
  3851.   


  3852. end ;







  3853. --------- oracle 用户 解压缩

  3854. gunzip -c 10201_database_linux_x86_64.cpio.gz > /tmp/10201_database_linux_x86_64.cpio
  3855. cpio -idmv < 10201_database_linux_x86_64.cpio


  3856. unzip p6810189_10204_Linux-x86-64.zip -d /tmp

  3857. 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归
  3858. zip [参数] [打包后的文件名] [打包的目录路径]*/

  3859. Linux下*.tar.gz文件解压缩命令


  3860. 1.压缩命令:

  3861.   命令格式:tar -zcvf 压缩文件名.tar.gz 被压缩文件名

  3862.       可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。
  3863.  

  3864. 2.解压缩命令:

  3865.   命令格式:tar -zxvf 压缩文件名.tar.gz

  3866.   解压缩后的文件只能放在当前的目录。


  3867. Aix下*.tar.gz文件解压缩命令
  3868. gunzip -c gdul3.5.0.1.tar.gz | tar -xvf -



  3869. ---------- 重建scott用户

  3870. sqlplus / as sysdba

  3871. SQL>@$ORACLE_HOME/rdbms/admin/utlsampl.sql




  3872. -------------SQLNET跟踪tnsping过程 sqlnet.ora中配置

  3873. Trace_level_client=16
  3874. Trace_directory_client=D:\Program files\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN
  3875. Trace_unique_client=on
  3876. Trace_timestamp_client=on
  3877. Diag_adr_enabled=off
  3878. tnsping.trace_directory=D:\Program files\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN
  3879. tnsping.trace_level=support



  3880. ----------元数据获取
  3881. SELECT to_char(DBMS_METADATA.GET_DDL('TABLESPACE', a.tablespace_name))
  3882.   FROM DBA_TABLESPACES a
  3883.  where a.TABLESPACE_NAME = 'TS_LHR';


  3884. SELECT TO_CHAR(DBMS_METADATA.GET_DDL('TABLE','EMP','SCOTT')) DDL_SQL FROM DUAL;

  3885. SELECT ((DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT', 'LHRSYS'))) FROM DUAL
  3886. UNION ALL
  3887. SELECT ((DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT', 'LHRSYS'))) FROM DUAL
  3888. UNION ALL
  3889. SELECT ((DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT', 'LHRSYS'))) FROM DUAL;


  3890. --------------linux 跟踪sqlplus进程
  3891. strace -o /tmp/output.txt -T -tt -e trace=all sqlplus / as sysdba

  3892. [root@rhel6_lhr ~]# strace -t -p 4545



  3893. ------------- Unix 跟踪sqlplus进程
  3894. truss -dfaie -o /tmp/sched_trace.out.02271 sqlplus '/as sysdba'


  3895. -----aix 修改系统时间
  3896. linux下用date -s "20131215 09:02:25"把时间设为2013年12月15日9点2分25秒。
  3897. 而aix呢?它不认-s这个参数:
  3898. date -n mmddHHMMYY,mm表示月分,dd表示日期,HH表示小时,MM表示分钟,YY表示年份。
  3899. 如:date -n 1215090213表示把当前时间设为2013年12月15日9点2分,秒数无法修改。


  3900. -----自动同步linux时间
  3901. 1、下载ntpdate
  3902. 注:有些版本是没有自带ntpdate,因此需要下载
  3903. # yum install -y ntpdate

  3904. 2、调整时区为上海,也就是北京时间+8区
  3905. 注:想改其他时区也可以去看看/usr/share/zoneinfo目录
  3906. # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  3907. # yes | cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  3908. 3、使用NTP来同步时间
  3909. # ntpdate us.pool.ntp.org

  3910. 4、定时同步时间(每隔10分钟同步时钟)
  3911. # crontab -l >/tmp/crontab.bak
  3912. # echo "*/10 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP" >> /tmp/crontab.bak
  3913. # crontab /tmp/crontab.bak




  3914. -----笔记本开启:wlan
  3915. netsh wlan set hostednetwork mode=allow ssid=lhr-minPC key=lihuarong
  3916. netsh wlan start hostednetwork
  3917. netsh wlan show hostednetwork


  3918. ------------ 福昕pdf
  3919. --右转
  3920. crtl+shift++




  3921. ------ Quote (q) 语法

  3922. select q''
  3923.   from employees;

  3924. select q'\\'
  3925.   from employees;


  3926. select q'\ \'
  3927.   from employees;




  3928. -------------------------------------- OS 类型
  3929. -----临时修改语言环境:
  3930. AIX:
  3931. export LANG=en_US
  3932. export LANG=zh_CN
  3933. Linux:
  3934. export LANG=en_US.UTF-8
  3935. export LANG=zh_CN.UTF-8


  3936. 可用语言环境:
  3937. locale -a | grep zh_CN

  3938. --------- Linux
  3939. cpu : cat /proc/cpuinfo|grep name|cut -f2 -d:|uniq -c
  3940. memory :cat /proc/meminfo

  3941. os version : lsb_release -a

  3942. os hostname hostname

  3943. ------aix


  3944.  
  3945. -------------- AIX 查看CPU个数
  3946.  1. smtctl
  3947.  2. bindprocessor -q
  3948.  3. prtconf
  3949.  4.lsdev
  3950.  5.vmstat
  3951.  

  3952. racle@DNSCDBS05:/home/oracle>hostname
  3953. DNSCDBS05
  3954. oracle@DNSCDBS05:/home/oracle>oslevel -r
  3955. 7100-01
  3956. oracle@DNSCDBS05:/home/oracle>uname -vr
  3957. 1 7
  3958. oracle@DNSCDBS05:/home/oracle>uname -s
  3959. AIX
  3960. oracle@DNSCDBS05:/home/oracle>uname -a
  3961. AIX DNSCDBS05 1 7 00F813B44C00
  3962. oracle@DNSCDBS05:/home/oracle>uname -v
  3963. 7
  3964. oracle@DNSCDBS05:/home/oracle>pmcycles -m
  3965. CPU 0 runs at 3024 MHz
  3966. CPU 1 runs at 3024 MHz
  3967. CPU 2 runs at 3024 MHz
  3968. CPU 3 runs at 3024 MHz
  3969. CPU 4 runs at 3024 MHz
  3970. CPU 5 runs at 3024 MHz
  3971. CPU 6 runs at 3024 MHz
  3972. CPU 7 runs at 3024 MHz
  3973. oracle@DNSCDBS05:/home/oracle>prtconf|grep Processors
  3974. Number Of Processors: 2

  3975. prtconf



  3976. prtdiag




  3977. select userenv('LANGUAGE') from dual;

  3978. archive log list;



  3979. select name from v$datafile;



  3980. ------------------------------- 表空间历史增长量
  3981. select a.name, b.*
  3982.   from v$tablespace a,
  3983.        (select tablespace_id ts#,
  3984.                trunc(to_date(rtime, 'mm/dd/yyyy hh24:mi:ss')) datetime,
  3985.                round(max(tablespace_usedsize * 8 / 1024),2) ts_used_size_M,
  3986.                round(max(v.tablespace_size * 8 / 1024),2) ts_size_MB,
  3987.                round(max(tablespace_maxsize * 8 / 1024/1024)) ts_maxsize_G
  3988.           from dba_hist_tbspc_space_usage v
  3989.          where trunc(to_date(rtime, 'mm/dd/yyyy hh24:mi:ss')) >=
  3990.                trunc(sysdate - 10)
  3991.          group by tablespace_id,
  3992.                   trunc(to_date(rtime, 'mm/dd/yyyy hh24:mi:ss'))
  3993.          order by tablespace_id,
  3994.                   trunc(to_date(rtime, 'mm/dd/yyyy hh24:mi:ss'))) b
  3995.  where a.ts# = b.ts#
  3996.  ORDER BY b.TS#,b.datetime;








  3997. --------------------------------------------- BIOS设置之UEFI BIOS 切换为 Legacy BIOS

  3998. 1、OS Optimized Defaults系统默认优化设置 配置为DISABLE
  3999. 2、CSM兼容模块设置 配置为ENABLE
  4000. 3、Boot Mode启动方式选择 配置为:Legacy only
  4001. 4、Secure boot 配置为:DISABLE




  4002. ---------------------------------- nmon

  4003. nmon -f -t -r nmon_lhr -s 10 -c 60
  4004. nmon -f -t -r nmon_lhr -s 30 -c 10
  4005. nmon -s10 -c60 -f -m /home/


  4006. 上面命令的含义是:

  4007. -f :按标准格式输出文件名称:<hostname>_YYYYMMDD_HHMM.nmon
  4008. -t :输出最耗资源的进程
  4009. -r : nmon生成的标题,监控记录的标题
  4010. -s :每隔n秒抽样一次,这里为30秒
  4011. -c :取出多少个抽样数量,这里为10,即监控=10*30/60=5分钟
  4012. -m : 生成的数据文件的存放目录。
  4013.  
  4014. -----------------自动按天采集数据:
  4015. 在 crontab 中增加一条记录:
  4016. 0 0 * * * root nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1
  4017. 300*288=86400 秒,正好是一天的数据。





  4018. ------------------ 根据相对位置创建快捷方式
  4019. %SystemRoot%\explorer.exe "一个绝对路径或相对路径"
  4020. 如:
  4021. %SystemRoot%\explorer.exe "..\TEST\TEST\TEST.txt"
  4022. 注意:得把起始位置清空




  4023. ----------------- OGG

  4024. ------- source端准备
  4025. SQL> col current_scn format 999999999999999
  4026. SQL> Select current_scn from v$database;

  4027.      CURRENT_SCN
  4028. ----------------
  4029.   12242466771468

  4030. SQL>

  4031.  
  4032.    
  4033. expdp XPADB/XPADB directory=DMP dumpfile=xpadb_20160125_01.dmp LOGFILE=xpadb_20160125.log TABLES=BASE_ACTIONPOWER,BASE_BANK,BASE_BANKMERGE FLASHBACK_SCN=12242466771468

  4034.  
  4035.  ---------- target 备份
  4036. expdp xpadrpt/xpadrpt directory=OGGD dumpfile=xpadb_20160125_02.dmp LOGFILE=xpadb_20160125_2.log TABLES=BASE_ACTIONPOWER,BASE_BANK,BASE_BANKMERGE


  4037. impdp XPADRPT/xpadrpt DIRECTORY=OGGD DUMPFILE=xpadb_20160125_01.dmp LOGFILE=impdp.xpadb_20160125_01.log REMAP_SCHEMA=xpadb:xpadrpt REMAP_TABLESPACE=xpaddat:xpaddata table_exists_action=replace


  4038. start replicat ggsrep , aftercsn 12242466771468


  4039. ------------- VirtualBox 修改磁盘大小 51200 为5G
  4040. vboxmanage list hdds
  4041. vboxmanage modifyhd "E:\My Virtual Machines\VirtualBox VMs\VirtualBox_XP\Windows XP.vdi" --resize 51200


  4042. --------------WPS 去掉文档漫游
  4043. Windows Registry Editor Version 5.00
  4044. [HKEY_CURRENT_USER\Software\Kingsoft\Office\6.0\plugins\officespace]
  4045. "roaminghomepageguidedtag"="9.1.0.4715"
  4046. 文件另存为.reg格式。在wps关闭下,双击该文件,按”是“和”确定“导入注册表。打开wps,没有文档漫游了。如果希望再次显示”文档漫游“,将该给文件中的"9.1.0.4715"改为""保存,运行就可了。





  4047. ------------------------- Linux 权限
  4048. 755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。

  4049. linux文件权限一般都以8进制表示,格式为abc的形式,其中a,b,c各为一个数字,分别表示User、Group、及Other对该文件的操作权限;
  4050. 如果文件权限用二进制表示那么是9位bit,从左至右,1-3位数字代表文件所有者的权限,4-6位数字代表同组用户的权限,7-9数字代表其他用户的权限;
  4051. 而具体的权限是由数字来表示的,读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示;
  4052. 通过4、2、1的组合,得到以下几种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)
  4053. 常用的linux文件权限如下:
  4054. 444 r--r--r--
  4055. 600 rw-------
  4056. 644 rw-r--r--
  4057. 666 rw-rw-rw-
  4058. 700 rwx------
  4059. 744 rwxr--r--
  4060. 755 rwxr-xr-x
  4061. 777 rwxrwxrwx
  4062. 这里以755为例:
  4063. 1-3位7等于4+2+1,rwx,所有者具有读取、写入、执行权限;
  4064. 4-6位5等于4+1+0,r-x,同组用户具有读取、执行权限但没有写入权限;
  4065. 7-9位5,同上,也是r-x,其他用户具有读取、执行权限但没有写入权限。
  4066. rwxr-xr-x: 当前文件 对 所属用户 为 可读可写可运行,对所属组为可读可运行,对其他用户为 可读可运行
  4067. Linux 中对于文件的权限 分为 可读(r),可写(w),可运行(x),其对应的 8进制代码是
  4068. 可读(r):4,可写(w):2,可运行(x):1 ,如果有多个权限,那么对应的8进制数字就是各个单独权限数字相加,3个数字中,第一个代表文件所属用户,第二个 代表文件所属组,第三个 代表 其他。 那么 对于 所属用户为可读可写可运行 就是 4+2+1 = 7, 对于所属组为 可读可运行就是 4+1 = 5 ,对于其他用户 为 可读 可运行 就是 4+1 = 5, 合起来就是 755 的权限



  4069. -------------- linux下查看所有用户

  4070. cat /etc/passwd |cut -f 1 -d :



  4071. ---------- AIX查看所有用户及其id
  4072. lsuser ALL |cut -d ' ' -f 1
  4073. lsuser ALL |cut -d ' ' -f 2
  4074. lsuser ALL |cut -d ' ' -f 1-2

  4075. ---------- AIX查看所有用户组及其id
  4076. lsgroup ALL |cut -d ' ' -f 1
  4077. lsgroup ALL |cut -d ' ' -f 2
  4078. lsgroup ALL |cut -d ' ' -f 1-2


  4079. ---------- linux和AIX查看所有用户及其id
  4080. cat /etc/passwd |cut -d : -f 1
  4081. cat /etc/passwd |cut -d : -f 3
  4082. cat /etc/passwd |cut -d : -f 1,3
  4083. cat /etc/passwd | awk 'BEGIN{FS=":"} {printf "%-15s %-10s %-20s \n",$1,$3,$6}' | sort -n -k2
  4084. cat /etc/passwd | awk 'BEGIN{FS=":"} $3>=100 {printf "%-15s %-10s %-20s \n",$1,$3,$6}' | sort -n -k2



  4085. ---------- linux和AIX查看所有用户组及其id
  4086. cat /etc/group |cut -d : -f 1
  4087. cat /etc/group |cut -d : -f 3
  4088. cat /etc/group |cut -d : -f 1,3
  4089. cat /etc/group | awk 'BEGIN{FS=":"} {printf "%-15s %-10s \n",$1,$3}' | sort -n -k2
  4090. cat /etc/group | awk 'BEGIN{FS=":"} $3>=100 {printf "%-15s %-10s \n",$1,$3}' | sort -n -k2




  4091. [root@redhat4 ~]# cat /etc/group | awk 'BEGIN{FS=":"} {printf "%-10s %-5s \n",$1,$3}'
  4092. root 0
  4093. bin 1
  4094. daemon 2
  4095. sys 3
  4096. adm 4
  4097. tty 5
  4098. xfs 43
  4099. ntp 38
  4100. gdm 42
  4101. stapdev 101
  4102. stapusr 102
  4103. pegasus 65
  4104. htt 103
  4105. oinstall 500
  4106. dba 501

  4107. ---------- linux和AIX查看所有用户组及其id,且id>=100
  4108. [root@redhat4 ~]# cat /etc/group | awk 'BEGIN{FS=":"} $3>=100 {printf "%-10s %-5s \n",$1,$3}'
  4109. users 100
  4110. nfsnobody 4294967294
  4111. stapdev 101
  4112. stapusr 102
  4113. htt 103
  4114. oinstall 500
  4115. dba 501
  4116. [root@redhat4 ~]#






  4117. -------------------------------------------------------------------------------- 虚拟机系列 --------------------------------------------------------------------------------
  4118. ------------------------------------------- 最新的XP虚拟机 Windows XP.vdi
  4119. 虚拟机安装:无论是绿色还是安装都需要有管理员的权限

  4120. 虚拟机中安装windows7: 需要进入PE系统后再安装

  4121. c:
  4122. cd C:\Program Files (x86)\VMware\VMware Workstation\


  4123. ----文件合并
  4124. vmware-vdiskmanager -r "E:\My Virtual Machines\Windows XP Professional\Windows XP Professional.vmdk" -t 0 "E:\My Virtual Machines\Windows XP Professional\XP_LHR.vmdk"


  4125. ---增大虚拟机文件 -x后的参数为磁盘扩展后的总大小
  4126. vmware-vdiskmanager -x 15Gb "G:\VMware Space\Red Hat Enterprise Linux 5.vmdk"

  4127. ---压缩磁盘空间,但是磁盘的最大值不变
  4128. vmware-vdiskmanager -k "G:\My Virtual Machines\RHEL6.5_LHRDB\RHEL6.5_LHRDB_DATA.vmdk"




  4129.  
  4130. {} 必须有
  4131. [] 可选项
  4132. | 选择
  4133. <> 注释或参数值
  4134. ()



  4135. -------------------------------------------------------------------------------- CHM --------------------------------------------------------------------------------
  4136.  chm文件是由Windows目录下的hh.exe这个文件打开的,但是它的搜索功能却不是这个文件能办到的, 所以, chm能打开却无法搜索, 或者是MSDN能打开却无法搜索, 即使重装也无济于事, 有的人遇到这个问题还从其他人的机器上重新拷贝了hh.exe这个文件, 发现仍然不能解决这个问题。 其实解决这个问题,很简单, 在运行里面执行以下命令:

  4137. regsvr32 hhctrl.ocx
  4138. regsvr32 itss.dll
  4139. regsvr32 itircl.dll //这个很重要,是关于全文搜索的。

  4140. 问题就可以解决了。 最后一个命令特别重要, 以前我找到的解决方法只有前面两个, 没有最后一个, 还是解决不了问题的。

  4141. 如果chm格式文件出现“网页不能浏览”的错误,在该文档上点击鼠标右键,解除锁定即可。




  4142. ------------------------------------ shell中的引号

  4143. 单引号和双引号的区别。单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、\、`。





  4144. -------------------------------------------
  4145. Sub setpicsize() '批量选中图片

  4146. Dim j '计数图片个数

  4147. Application.ScreenUpdating = False
  4148. For j = 1 To ActiveDocument.InlineShapes.Count '文件中图片总个数,图片类型为inlineshapes
  4149.     'ActiveDocument.InlineShapes(j).Height = ActiveDocument.InlineShapes(j).Height '设置高度
  4150.     'ActiveDocument.InlineShapes(j).Width = ActiveDocument.InlineShapes(j).Width '设置宽度
  4151.     ActiveDocument.InlineShapes(j).Range.Editors.Add wdEditorEveryone
  4152. Next j
  4153. ActiveDocument.SelectAllEditableRanges (wdEditorEveryone)
  4154. ActiveDocument.DeleteAllEditableRanges (wdEditorEveryone)
  4155. Application.ScreenUpdating = True

  4156. End Sub



  4157. 'ALTER SYSTEM KILL SESSION ''' || s.SID || ',' || s.SERIAL# ||',@'||A.INST_ID||' IMMEDIATE ;' kill_session,
  4158. 'ALTER SYSTEM KILL SESSION ''' || s.SID || ',' || s.SERIAL# ||''' IMMEDIATE ;' kill_session,
  4159. ALTER SYSTEM KILL SESSION '1228,42549,@1';
  4160. SELECT 'ALTER SYSTEM DISCONNECT SESSION ''' || V.SID || ',' || V.SERIAL# || ',@' ||
  4161.        V.INST_ID || ''' IMMEDIATE',
  4162.        'ALTER SYSTEM DISCONNECT SESSION ''' || V.SID || ',' || V.SERIAL# ||
  4163.        ''' IMMEDIATE',
  4164.        V.*
  4165.   FROM GV$SESSION V;


  4166. -----清理killed的会话
  4167. -----方法1
  4168. select spid, program from v$process
  4169.     where program!= 'PSEUDO'
  4170.     and addr not in (select paddr from v$session)
  4171.     and addr not in (select paddr from v$bgprocess)
  4172.     and addr not in (select paddr from v$shared_server);

  4173. select INST_ID, spid, program,'kill -9 '|| spid kill9
  4174.   from gv$process a
  4175.  where program != 'PSEUDO'
  4176.    and (INST_ID, addr) not in (select INST_ID, paddr from gv$session)
  4177.    and (INST_ID, addr) not in (select INST_ID, paddr from gv$bgprocess)
  4178.    and (INST_ID, addr) not in (select INST_ID, paddr from gv$shared_server)
  4179.    and a.PNAME is null;

  4180. -----方法2
  4181. set line 9999
  4182. col sessionid format a20
  4183. col sessionid_killed format a20
  4184. col kill_session format a60

  4185. SELECT a.INST_ID,
  4186.        a.SID || ',' || a.SERIAL# || ',' ||
  4187.        (select spid
  4188.           from gv$process b
  4189.          where b.INST_ID = a.INST_ID
  4190.            and A.creator_addr = b.ADDR --and decode(a.status,'KILLED',A.creator_addr,A.PADDR) = b.ADDR
  4191.         ) sessionid,
  4192.        a.PADDR,
  4193.        a.STATUS,
  4194.        a.PROGRAM,
  4195.        'alter system disconnect session ''' || sid || ',' || serial# || ''' immediate;' kill_session
  4196.   FROM gv$session a
  4197.  WHERE a.USERNAME = 'SYS'
  4198.    and a.STATUS = 'KILLED';


  4199. -----方法3
  4200. SELECT a.SID || ',' || a.SERIAL# || ',' ||
  4201.        (select spid
  4202.           from gv$process b
  4203.          where b.INST_ID = a.INST_ID
  4204.            and A.pid = b.pid) sessionid,
  4205.        'alter system kill session ''' || sid || ',' || serial# || ''';' kill_session
  4206.   FROM gV$DETACHED_SESSION a;


  4207. -----方法4
  4208. SELECT INST_ID, spid, program, 'kill -9 ' || spid kill9
  4209.   FROM gv$process a
  4210.  WHERE (a.INST_ID, a.addr) in (select INST_ID, p.addr
  4211.                                  from gv$process p
  4212.                                 where pid <> 1
  4213.                                minus
  4214.                                select INST_ID, s.paddr
  4215.                                  from gv$session s)
  4216.     and a.PNAME is null;



  4217. ---------------- rac 配置SSH互信
  4218. sshUserSetup.sh在GI安装介质解压缩后的sshsetup目录下。下面两条命令在一个节点上执行即可,在root用户下执行:
  4219. ./sshUserSetup.sh -user grid -hosts "raclhr-12cR1-N2 raclhr-12cR1-N1" -advanced exverify –confirm
  4220. ./sshUserSetup.sh -user oracle -hosts "raclhr-12cR1-N2 raclhr-12cR1-N1" -advanced exverify -confirm

  4221. -------- 脚本配置
  4222. grep "^LoginGraceTime 0" /etc/ssh/sshd_config
  4223. [ $? -ne 0 ] && { cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.org; echo "LoginGraceTime 0" >>/etc/ssh/sshd_config; }

  4224. export hn=`hostname`
  4225. export oth=RACDB2
  4226. export p_pwd='/nfs/software/db/install/inst/sh/11g'
  4227. su - grid -c "$p_pwd/sshUserSetup.sh -user grid -hosts $oth -noPromptPassphrase"
  4228. su - grid -c "ssh $hn hostname"
  4229. su - grid -c "ssh $oth hostname"

  4230. su - oracle -c "$p_pwd/sshUserSetup.sh -user oracle -hosts $oth -noPromptPassphrase"
  4231. su - oracle -c "ssh $hn hostname"
  4232. su - oracle -c "ssh $oth hostname"

  4233. ------分别配置grid和oracle用户的ssh
  4234. -------- 手工配置
  4235. ----------------------------------------------------------------------------------
  4236. [root@ZFLHRDB1 : /]# su - oracle
  4237. [oracle@ZFLHRDB1 ~]$ mkdir -p ~/.ssh
  4238. [oracle@ZFLHRDB1 ~]$ chmod 700 ~/.ssh
  4239. [oracle@ZFLHRDB1 ~]$ ssh-keygen -t rsa ->回车->回车->回车
  4240. [oracle@ZFLHRDB1 ~]$ ssh-keygen -t dsa ->回车->回车->回车

  4241. -----------------------------------------------------------------------------------
  4242. [root@ZFLHRDB2 : /]# su - oracle
  4243. [oracle@ZFLHRDB2 ~]$ mkdir ~/.ssh
  4244. [oracle@ZFLHRDB2 ~]$ chmod 700 ~/.ssh
  4245. [oracle@ZFLHRDB2 ~]$ ssh-keygen -t rsa ->回车->回车->回车
  4246. [oracle@ZFLHRDB2 ~]$ ssh-keygen -t dsa ->回车->回车->回车

  4247. -----------------------------------------------------------------------------------

  4248. [oracle@ZFLHRDB1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  4249. [oracle@ZFLHRDB1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  4250. [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ->输入ZFLHRDB2密码
  4251. [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys ->输入ZFLHRDB2密码
  4252. [oracle@ZFLHRDB1 ~]$ scp ~/.ssh/authorized_keys ZFLHRDB2:~/.ssh/authorized_keys ->输入ZFLHRDB2密码

  4253. -----------------------------------------------------------------------------------
  4254. 测试两节点连通性:
  4255.   
  4256. [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB1 date
  4257. [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB2 date
  4258. [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB1-priv date
  4259. [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB2-priv date

  4260. [oracle@ZFLHRDB2 ~]$ ssh ZFLHRDB1 date
  4261. [oracle@ZFLHRDB2 ~]$ ssh ZFLHRDB2 date
  4262. [oracle@ZFLHRDB2 ~]$ ssh ZFLHRDB1-priv date
  4263. [oracle@ZFLHRDB2 ~]$ ssh ZFLHRDB2-priv date






  4264. -----如何清除Shared Pool中某条SQL语句?
  4265. 如果数据库版本为Oracle 10g以前,那么只能清空整个Shared Pool,命令为:“ALTER SYSTEM FLUSH SHARED_POOL;”。在Oracle 10g中提供了一个包DBMS_SHARED_POOL,该包可以实现该功能。若该包没有安装,则可以通过$ORACLE_HOME/rdbms/admin/dbmspool.sql进行安装。在Oracle 10.2.0.4中有BUG(MOS为:751876.1),需要通过设置事件来规避该问题,命令为:“ ALTER SESSION SET EVENTS '5614566 TRACE NAME CONTEXT FOREVER';”
  4266. 使用这种方法,就可以精确的将一个SQL从共享池中删除,从而使得Oracle为这个SQL重新生成执行计划。这种方法只针对单个SQL语句,使得解决问题的同时不会造成任何的误伤。
  4267. SYS@lhrdb> SELECT ADDRESS,HASH_VALUE FROM V$SQLAREA WHERE ROWNUM<=1;
  4268. ADDRESS HASH_VALUE
  4269. ---------------- ----------
  4270. 0000000092D263D0 3231842444
  4271. SYS@lhrdb> EXEC DBMS_SHARED_POOL.PURGE('0000000092D263D0,3231842444','C');
  4272. PL/SQL procedure successfull


  4273. --------------------------------------------- Linux 逻辑卷管理
  4274. pvcreate /dev/sda4
  4275. pvdisplay
  4276. pvs
  4277. vgcreate vg_orasoft /dev/sda4
  4278. vgdisplay
  4279. vgs
  4280. lvcreate -n lv_orasoft_u01 -L 1G vg_orasoft
  4281. lvdisplay
  4282. lvs
  4283. mkfs.ext4 /dev/vg_orasoft/lv_orasoft_u01
  4284. mkdir /u11
  4285. mount /dev/vg_orasoft/lv_orasoft_u01 /u11
  4286. --mv /u01/* /u11/

  4287. --扩展逻辑卷
  4288. vgextend vg_orasoft /dev/sdb3
  4289. --lvextend -L +9G /dev/vg_orasoft/lv_orasoft_u01
  4290. lvextend -L 20G /dev/vg_orasoft/lv_orasoft_u01
  4291. resize2fs /dev/vg_orasoft/lv_orasoft_u01 #更新文件系统
  4292. --收缩逻辑卷
  4293. lvreduce -L -4G /dev/vg_orasoft/lv_orasoft_u01
  4294. --重命名逻辑卷
  4295. lvrename /dev/vg_orasoft/lv_ora_soft_u01 /dev/vg_orasoft/lv_orasoft_u01


  4296. --- /etc/fstab
  4297. /dev/vg_orasoft/lv_orasoft_u01 /u01 ext4 defaults 0 0
  4298. /dev/vg_orasoft/lv_orasoft_u02 /u02 ext4 defaults 0 0
  4299. /dev/vg_orasoft/lv_orasoft_u03 /u03 ext4 defaults 0 0
  4300. /dev/vg_orasoft/lv_oradata_u04 /u04 ext4 defaults 0 0

  4301. ---找逻辑卷
  4302. lvmdiskscan
  4303. vgchange -ay



  4304. --------------------------------------------- 查询表的历史统计信息
  4305. SELECT D.OWNER,
  4306.        D.TABLE_NAME,
  4307.        TO_CHAR(D.STATS_UPDATE_TIME, 'YYYY-MM-DD HH24:MI:SS') STATS_UPDATE_TIME
  4308.   FROM DBA_TAB_STATS_HISTORY D
  4309.  WHERE D.TABLE_NAME IN ('TPCCBOKBAL', 'TPCCBOKBAL_TMP', 'TPCCBOKBALJN')
  4310.  ORDER BY D.owner,D.table_name, D.stats_update_time;


  4311. SELECT B.OWNER,
  4312.        B.OBJECT_NAME TABLE_NAME,
  4313.        TO_CHAR(D.ANALYZETIME, 'YYYY-MM-DD HH24:MI:SS') LAST_ANALYZETIME,
  4314.        TO_CHAR(D.SAVTIME, 'YYYY-MM-DD HH24:MI:SS') CURR_ANALYZETIME,
  4315.        D.ROWCNT
  4316.   FROM SYS.WRI$_OPTSTAT_TAB_HISTORY D, DBA_OBJECTS B
  4317.  WHERE D.OBJ# = B.OBJECT_ID
  4318.    AND B.OBJECT_NAME IN
  4319.        ('TEST_STAT', 'TPCCBOKBAL_TMP', 'TPCCBOKBALJN', 'PK_TPCCBOKBAL')
  4320.  ORDER BY D.OBJ#, D.SAVTIME;


  4321. ----------------------- 查询索引的历史统计信息
  4322.   SELECT B.OWNER,
  4323.        B.OBJECT_NAME INDEX_NAME,
  4324.        TO_CHAR(D.ANALYZETIME, 'YYYY-MM-DD HH24:MI:SS') LAST_ANALYZETIME,
  4325.        TO_CHAR(D.SAVTIME, 'YYYY-MM-DD HH24:MI:SS') CURR_ANALYZETIME,
  4326.        D.ROWCNT,
  4327.        D.BLEVEL,
  4328.              D.LEAFCNT,
  4329.              D.DISTKEY,
  4330.              D.CLUFAC
  4331.   FROM SYS.WRI$_OPTSTAT_IND_HISTORY D, DBA_OBJECTS B
  4332.  WHERE D.OBJ# = B.OBJECT_ID
  4333.    AND B.OBJECT_NAME IN ('IND_TEST

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31425366/viewspace-2131816/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2017-01-03

  • 博文量
    7
  • 访问量
    6612