實(shí)踐Java
          Practice in Java
          posts - 6,  comments - 20,  trackbacks - 0
           1 select COMPCODE, 
           2        COMPNAME, 
           3         LEVEL,
           4         TOTAL,
           5         F_CAC_VAL('1' || SYS_CONNECT_BY_PATH(TOTAL, '*')) V,
           6        '1' || SYS_CONNECT_BY_PATH(TOTAL, '*') P
           7   from T_M_COMPONENT T
           8  where COMPTYPE = 0
           9  start with bompid = 117808

          10 connect by NOCYCLE prior bomid = bompid  一. 數(shù)據(jù)閃回功能
                 在ORACLE使用過程中經(jīng)常會誤刪除行記錄,而且COMMIT了,怎樣找回誤刪的數(shù)據(jù)是個麻煩事.

                1.找出閃回點(diǎn)

          1SQL> select dbms_flashback.get_system_change_number fscn from dual;
          2 
          3FSCN
          4----------
          56603893



             2.根據(jù)閃回點(diǎn)追尋數(shù)據(jù)
          SQL> select * from t_sys_role as of scn 6589999;


          看看如果誤刪的數(shù)據(jù)存在這里,即可根據(jù)6589999這個點(diǎn)進(jìn)行回閃數(shù)據(jù)

              3.恢復(fù)數(shù)據(jù)

          SQL>insert into    t_sys_role
                           
          select *  from t_sys_role as of scn 6589999
                                       
          where   roleid not in (select roleid from t_sys_role)

             4.另外一種方法
               select * from 表名 as of timestamp sysdate-1/6 
                                                                      ```````````````這里是4小時之前的數(shù)據(jù)
             

               如果表被drop了,則使用:

               flashback table 表名 to before drop;


          二.ORACLE創(chuàng)建用戶指令
          create temporary tablespace guhan_temp tempfile '/home/db_data/mis/temp.dbf' size 512m autoextend on next 512m;

          create tablespace mis_data datafile '/home/db_data/mis/mis_data.dbf' size 1024m autoextend on next 2048m;

          create user mis identified by mis_guhan default tablespace mis_data temporary tablespace guhan_temp;


          grant connect,resource,dba to mis; 

          三.ORACLE啟動指令
             
          1  # su - oracle //關(guān)鍵
          2  # sqlplus /nolog
          3  SQL>startup mount
          4  SQL>ALTER DATABASE OPEN
          5  SQL>STARTUP 
          6  $ lsnrctl start
          7  $ emctl start dbconsole 

           四.ORACLE數(shù)據(jù)庫的字符集轉(zhuǎn)換

          ALTER DATABASE character set INTERNAL_USE ZHS16GBK;


          五.更新記錄不存在,則插入
          1BEGIN
          2    UPDATE T_TABLE SET COL='VALUE' WHERE 1=2;
          3    IF SQL%ROWCOUNT < 1 THEN
          4       INSERT INTO T_TALBE(COL) VALUES('VALUE');
          5    END IF;
          6END;

          六.  在Redhat5.7-x64上安裝11gR1遇到的問題
              第一次安裝老有很多包找不到,裝到復(fù)制文件78%左右,出現(xiàn)不能編譯腳本的錯誤,手動安裝gcc也失敗,后來重裝系統(tǒng),一定要安裝老的開發(fā)工具,否則找不著gcc,不能正常安裝,碰上x-server的情況,可用root執(zhí)行xhost + 命令
            安裝后面出現(xiàn)了一個錯誤,dbms腳本錯誤,結(jié)果實(shí)例沒有配置完成,導(dǎo)致數(shù)據(jù)庫不能使用
            sqlplus /nolog 可以登錄并且啟動實(shí)例,但是sqlplus 帳號/密碼@實(shí)例不能登錄,tnsping是正常的,懷疑tns的oracle_sid和實(shí)例的sid可能不一樣發(fā)現(xiàn)原因:
              $ORACLE_HOME/dbs/init.ora 里缺少intance_name
            可能是上面的錯誤導(dǎo)致init.ora的參數(shù)未初始化完畢

            #su oracle
            $sqlplus /nolog
            $conn / as sysdba
            $shutdown abort
            $startup

            成功啟動,再連接 OK!

          七.樹形卷疊計(jì)算
          七. linux常用的簡單命
           1 select COMPCODE, 
           2        COMPNAME, 
           3         LEVEL,
           4         TOTAL,
           5         F_CAC_VAL('1' || SYS_CONNECT_BY_PATH(TOTAL, '*')) V,
           6        '1' || SYS_CONNECT_BY_PATH(TOTAL, '*') P
           7   from T_M_COMPONENT T
           8  where COMPTYPE = 0
           9  start with bompid = 117808
          10 connect by NOCYCLE prior bomid = bompid
              目錄授權(quán)(修改目錄所有者): chown -R oracle:dba db_data/
          八:   設(shè)置權(quán)限:chmod 777 db_data

          八:禁用exp導(dǎo)出權(quán)限
          sys權(quán)限進(jìn)入oracle,執(zhí)行
          revoke select on sys.exu8usru from public;

          posted on 2009-10-19 11:00 弦驚塞外 閱讀(503) 評論(3)  編輯  收藏

          FeedBack:
          # re: ORACLE常用技巧[未登錄]
          2009-10-20 08:37 | yt
          樓主用的ORACLE 版本是?
          我在Oracle10g下找不到 dbms_flashback  回復(fù)  更多評論
            
          # re: ORACLE常用技巧
          2009-10-20 20:11 | 弦驚塞外
          @yt
          10G
          這個要授權(quán),或者用system登陸查詢到scn值  回復(fù)  更多評論
            
          # re: ORACLE常用技巧
          2019-05-15 18:48 | 弦驚塞外
          5.1 修改server端字符集(不建議使用)



          1. 關(guān)閉數(shù)據(jù)庫

          SQL>SHUTDOWN IMMEDIATE



          2. 啟動到Mount

          SQL>STARTUP MOUNT;

          SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

          SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

          SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

          SQL>ALTER DATABASE OPEN;




          --這里可以從父集到子集

          SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;

          SQL>ALTER DATABASE NATIONAL CHARACTER SET ZHS16GBK;


          --如果是從子集到父集,需要使用INTERNAL_USE 參數(shù),跳過超子集檢測

          SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;

          SQL>ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL32UTF8;





          SQL>SHUTDOWN IMMEDIATE;



          SQL>STARTUP  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          <2019年5月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(3)

          隨筆檔案

          相冊

          搜索

          •  

          積分與排名

          • 積分 - 6313
          • 排名 - 2843

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 彭州市| 铜川市| 神农架林区| 合川市| 喜德县| 溧水县| 鄂州市| 高邑县| 延吉市| 平武县| 勐海县| 阿荣旗| 潜山县| 东乌珠穆沁旗| 阜宁县| 抚州市| 东宁县| 宣城市| 晋州市| 门源| 西城区| 柞水县| 城口县| 长兴县| 昭苏县| 贵南县| 英山县| 泰顺县| 余姚市| 潮安县| 青阳县| 绵竹市| 定州市| 台湾省| 化州市| 独山县| 元氏县| 抚顺市| 江山市| 海伦市| 牙克石市|