1. 程式人生 > >linux下oracle常用操作以及linux基本操作

linux下oracle常用操作以及linux基本操作



linux下檢視oracle中有多少個例項已經啟動了:
ps -ef|grep smon


echo命令可以檢視變數
echo $ORACLE_HOME看看目錄在哪


沒啟動的,只能去$ORACLE_HOME/dbs下面去數你有多少init檔案了。
oracle11g可以檢視/etc/oratab檔案




啟動資料庫例項,分為兩步:
第一步,啟動監聽;
 [[email protected] ~]$ su - oracle     --“切換到oracle使用者”
 [[email protected] ~]$ lsnrctl start   --“開啟監聽” 
第二步,啟動資料庫例項。
export ORACLE_SID=SID2  --設定預設的oracle_sid  可以用echo $ORACLE_SID檢視當前預設的SID
sqlplus /nolog
conn /as sysdba         --使用sys登入oracle在執行startup命令
startup                 --啟動資料庫例項的命令
shutdown immediate      --關閉資料庫例項的命令




注意:                                             邏輯壞塊問題
啟動oracle的時候報錯ORA-00600: internal error code, arguments: [kcratr_scan_lastbwr], [], [], [],[], [], [], [], [], [], [], []
執行sql查詢語句的時候報錯:datase not open


首先查詢alert日誌和trace檔案:


在ASMDB_ora_5210.trc檔案中有如下的資訊:


..................


17755E0 03C10222 096F780B 36380113 6029D938  ["....xo...868.)`]
17755F0 D843E0FF 7CAA8000 02C1B000 88DC0248  [..C....|....H...]
Reading datafile '+ZHUXGASM/asmdb/datafile/undotbs1.258.813246367' for corruption at rdba: 0x00c00858 (file 3, block 2136)
Reread (file 3, block 2136) found same corrupt data (logically corrupt)
******** WRITE VERIFICATION FAILED ********


由此我們知道是因為資料庫宕機之後,出現了邏輯壞塊 (logically corrupt),因此需要進行介質恢復。




解決辦法:
suse11sp2:/oracle/oraarch> sqlplus / as sysdba   --連線oracle
SQL> select status from v$instance;              --檢視狀態
STATUS
------------
MOUNTED 
SQL> 
SQL> 
SQL> select open_mode from v$database; 
OPEN_MODE
--------------------
MOUNTED 
SQL> 
SQL> 
SQL> recover database; 
Media recovery complete.
SQL>
SQL>
SQL> alter database open;
Database altered.
SQL>
SQL>
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE 


3、驗證處理效果
執行一次乾淨關閉,然後在開啟,不在報錯,問題處理完畢。
 
SQL> alter system checkpoint;
 
System altered.
 
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL>
SQL>
SQL>
SQL> startup
ORACLE instance started. 








-- Create database link 
-- 配置了本地服務名的可以使用該方法
--create database link db_to_250 connect to admin identified by "admin123" using 'itmsv2_250'; 
create database link db_to_250
  connect to admin identified by "admin123"
  using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 193.169.100.250)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = itmsv2)
    )
  )';


要求表不存在,建立new_table_name
SELECT *
INTO new_table_name [IN externaldatabase] 
FROM old_tablename


要求表存在
Insert into Table2(field1,field2,...) select value1,value2,... from Table1

***********************************************************************************************************************************************
***********************************************************************************************************************************************
***********************************************************************************************************************************************

檢視svn執行埠

# ps aux | grep svn
root     64434  0.0  0.0 181584  1120 ?        Ss   02:01   0:00 svnserve -d -r /var/svn/svnrepos
root     64481  0.0  0.0 103256   848 pts/1    S+   02:03   0:00 grep svn


使用Kill命令殺死程序  kill -s 9 64434
啟動SVN服務: 
svnserve -d -r /var/svn/svnrepos




新增使用者許可權:
vim /var/svn/svnrepos/conf/authz


[groups]
admin=xx01,xx02
user=xx03,xx04


[/]#根目錄許可權配置
admin=rw #授權使用者admin讀寫許可權
@admin=rw ##授權admin使用者組讀寫許可權


[/code/xx] #code目錄下的xx目錄的許可權配置
@user=rw  #授權user使用者組讀寫許可權


配置許可權無需重啟svn服務


*******************************************************************************
根據埠號檢視程序
sudo lsof -i:8088


檢視tomcat程序
ps -aux | grep tomcat(或者ps -ef | grep tomcat都行)


根據程序檢視埠號
sudo netstat -naop | grep 14177


根據程序號殺死程序
kill -9 14177


實時檢視tomcat執行日誌:
先切換到:tomcat/logs目錄,在執行:
tail -f catalina.out