【賽迪網-IT技術報道】Oracle Sys用戶用默認密碼change_on_install 無法登錄的問題(錯誤代碼:ORA-28009)
在使用默認Oracle自帶的SQL Plus登錄數據庫時(如下圖),使用system用戶默認密碼manager登錄沒有問題。
但是同樣的輸入用戶sys和默認密碼change_on_install確無法登錄.
報錯如下:
ERROR:
ORA-28009: connection to sys should be as sysdba or sysoper
問題分析:
用法: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]
其中
解決辦法:
1.用system用戶登錄,然後按完整格式卻換到sys用戶:
SQL> conn sys/change_on_install@zgctwo as sysdba
已連接。2.在上圖的登錄界面的主機字符串後面接上字符串 as sysdba:
(2)熟手解決方法:
環境win2000 server Oracle8.1.7
SQL> create tablespace price datafile 'price.ora' size 10M; 表空間已創建。
SQL> drop tablespace price; 表空間已丟棄。
SQL> create tablespace plate datafile 'plate.ora' size 10M; 表空間已創建。
SQL> create user plate identifIEd by plate default tablespace plate; 用戶已創建
SQL> grant connect,resource to plate; 授權成功。
SQL> connect plate/plate 已連接。
SQL>
// 關閉數據庫
Microsoft Windows ;2000 [Version 5.00.2195]
(C) 版權所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator>svrmgrl
........
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
SVRMGR> connect internal/Oracle
連接成功。
SVRMGR> shutdown immediate
已關閉數據庫。
已卸下數據庫。
已關閉 Oracle 實例。
// 將數據文件plate.ora刪除,模擬數據文件丟失
SVRMGR> startup
已啟動 Oracle 實例。
系統全局區域合計有 29431836個字節
Fixed Size 75804個字節
Variable Size 28459008個字節
Database Buffers 819200個字節
Redo Buffers 77824個字節
已裝入數據庫。
ORA-01157: ????/?????? 8 - ??? DBWR ????
ORA-01110: ???? 8: 'D:\Oracle\ORA81\DATABASE\PLATE.ORA'
// 數據庫打開失敗,將錯誤的數據文件offline drop
SVRMGR> alter database datafile 'd:\Oracle\ora81\database\plate.ora' offline drop;
語句已處理。
// 數據庫打開成功
SVRMGR> alter database open;
語句已處理。
SVRMGR>
// sql*plus中,處理善後工作,刪除相關聯的表空間
SQL> connect internal/Oracle
已連接。
SQL> col name format a50
SQL> select name,status from v_$datafile;
NAME STATUS
------------------------------ -------
D:\Oracle\ORADATA\ORAL\SYSTEM01.DBF SYSTEM
D:\Oracle\ORADATA\ORAL\RBS01.DBF ONLINE
D:\Oracle\ORADATA\ORAL\USERS01.DBF ONLINE
D:\Oracle\ORADATA\ORAL\TEMP01.DBF ONLINE
D:\Oracle\ORADATA\ORAL\TOOLS01.DBF ONLINE
D:\Oracle\ORADATA\ORAL\INDX01.DBF ONLINE
D:\Oracle\ORADATA\ORAL\DR01.DBF ONLINE
D:\Oracle\ORA81\DATABASE\PLATE.ORA OFFLIN
已選擇8行。
SQL> drop tablespace plate; 表空間已丟棄。
SQL> col name format a33
SQL> col name format a35
SQL> col name format a50
SQL> select name,status from v_$datafile;
NAME STATUS
-------------------------------------------------- -------
D:\Oracle\ORADATA\ORAL\SYSTEM01.DBF SYSTEM
D:\Oracle\ORADATA\ORAL\RBS01.DBF ONLINE
D:\Oracle\ORADATA\ORAL\USERS01.DBF ONLINE
D:\Oracle\ORADATA\ORAL\TEMP01.DBF ONLINE
D:\Oracle\ORADATA\ORAL\TOOLS01.DBF ONLINE
D:\Oracle\ORADATA\ORAL\INDX01.DBF ONLINE
D:\Oracle\ORADATA\ORAL\DR01.DBF ONLINE
已選擇7行。
SQL>
安裝有Oracle的計算機請一定注意不要隨便執行P(如下代碼)刪除
因為Oracle的日志文件記錄著用戶的信息,如果刪除那麼就只能使用sys 和system來登錄了
要想恢復很復雜。 作為DBA,一定要注意server版的os很嚴格,切勿刪除不明白來源的文件,
無論刪除任何系統文件都要進行備份
我曾使用以下代碼在server2003上執行.reg文件,導致Oracle非系統默認用戶不能登錄
結果只有從新安裝 Oracle
@echo off
echo wait......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*