一個J2EE的網站導致Oracle數據庫不能用
普通用戶無法登陸到數據庫
解決方案:
遠程連接到數據庫服務器,打開cmd命令窗口,輸入如下命令:
1. sqlplus/nolog
2. conn username/password@sid as sysdba
3. alter system checkpoint;
4. shutdown immdiate;(或:shutdown abort;----強行關閉)
5. startup nomount;
查看日誌模式命令:archive log list
Oracle 數據庫備份:
1. 登陸Toad,如用户:scylla
2. 選擇菜單—DBA
3. 選擇子菜單---Data Import/Export
4. 选择Export Utility Wizard
5. 选择Export users---next
6. 选择你的用户,如scylla----next
7. next
8. 选择你的存放目录,并命名----next
9. 点击finish后在你的目录里产生备份文件如:scylla.dmp
还有另一种备份方法:
echo off
exp username/password@sid file=C:/data/db.dmp log=C:/data/db.log owner=aegean buffer=65536000
新建bat文件,将上述内容复制到bat文件中,保存,在Oracle数据库服务器上执行次bat文件即可。
经测试上述两种方法均可行。
注:在目录oracle92/network/admin中有一个文件tnsnames.ora,文件中有数据库的相关配置,有以下两
方式:
SID_ip =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ***)
(SERVER = DEDICATED)
)
)
这种方式有sid,备份的bat语句为:
echo off
exp username/password@scylla file=C:/data/db.dmp log=C:/data/db.log owner=aegean buffer=65536000
scylla=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =sclla)
)
)
)
而这种方式无sid,备份的bat语句为:
echo off
exp username/password@sid file=C:/data/db.dmp log=C:/data/db.log owner=aegean buffer=65536000
oracle数据库恢复
附: sql server 与Oracle 数值对应关系
sql ----------oracle
int ----------number(10,0)
nvarchar(20) ----------varchar2(40)
varchar(100) ----------varchar2(100)
varchar(128) ----------varchar2(128)
nvarchar(20) ----------varchar2(40)
smallint ----------number(5,0)
nvarchar(15) ----------varchar2(30)
1. 登陸Toad,如用户:scylla
2. 選擇菜單—DBA
3. 選擇子菜單---Data Import/Export
4. 选择Inport Utility Wizard
5. 选择Inport users---next
6. from和to选择你的用户,如scylla----add----next
7. next
8. 选择你备份的文件(.dmp)----next
9. 点击finish,数据库恢复完成(此种恢复会将你备份前的数据全部导入进来,并且不会影响你备份后新增或修改的数据)