Sau khi vật lộn với vấn đề này trong gần một tuần, tôi đã tìm ra giải pháp, cách cung cấp cơ sở dữ liệu XE từ nguồn
-
Cài đặt phiên bản cuối cùng của Oracle XE 11gR2 từ trang web Oracle vào vị trí mặc định
c:\oraclexe
với mật khẩu mặc định là quản trị viên . Nếu không phải là mặc định, thì bạn nên chỉnh sửa các tập lệnh bên dưới (đường dẫn và pwd) trước khi sử dụng chúng. -
Chạy cmd dòng lệnh dưới đặc quyền của quản trị viên và sử dụng nó cho đến khi kết thúc cấu hình lại. Trước hết, hãy đặt các biến môi trường cho DB của bạn:
set ORACLE_SID=XE set ORACLE_BASE=c:\oraclexe\app\oracle set ORACLE_HOME=c:\oraclexe\app\oracle\product\11.2.0\server
-
Xóa cơ sở dữ liệu XE bằng lệnh:
oradim -delete -sid XE
-
Xóa tệp
PWDXE.ORA file
:del %ORACLE_HOME%\database\PWDXE.ORA
-
Sao chép
init.ora
từ%ORACLE_HOME%\config\scripts
tới%ORACLE_HOME%\database
, thay vì hiện tại, hãy đổi tên nó thànhinitXE.ora
và thêm cấu hình bên dưới:open_cursors=300 db_name=XE control_files=("C:\oraclexe\app\oracle\oradata\XE\control.dbf") job_queue_processes=4 compatible=11.2.0.0.0 diagnostic_dest=C:\oraclexe\app\oracle\. memory_target=1G sessions=100 audit_file_dest=C:\oraclexe\app\oracle\admin\XE\adump remote_login_passwordfile=EXCLUSIVE dispatchers="(PROTOCOL=TCP) (SERVICE=XEXDB)" shared_servers=4 undo_management=AUTO undo_tablespace=UNDOTBS1 DB_RECOVERY_FILE_DEST_SIZE = 10G DB_RECOVERY_FILE_DEST=C:\oraclexe\app\oracle\fast_recovery_area #optional nls_language="RUSSIAN" nls_territory="RUSSIA"
-
Từ cmd trước đó dòng có đặc quyền quản trị chạy lệnh để tạo các dịch vụ Oracle và tệp
%ORACLE_HOME%\database\PWDXE.ORA
:oradim -new -sid %ORACLE_SID% -intpwd admin -startmode auto -srvcstart system
-
Chạy các lệnh bên dưới để dừng các dịch vụ Windows Oracle XE, xóa chúng và các tệp XE bổ sung:
sqlplus /nolog connect sys/admin as sysdba; shutdown immediate; exit; del %ORACLE_BASE%\oradata\XE\CONTROL.DBF del %ORACLE_BASE%\fast_recovery_area\XE\ONLINELOG\*.LOG
-
Tạo hai tệp vào một thư mục:
createXE.cmd
set ORACLE_SID=XE
set NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
set ORACLE_BASE=C:\oraclexe\app\oracle
sqlplus /nolog @createXE.sql
createXE.sql
spool %ORACLE_BASE%\admin\XE\CreateXE.log;
connect sys/admin as sysdba;
startup nomount;
CREATE DATABASE XE
LOGFILE GROUP 1 SIZE 51200K,
GROUP 2 SIZE 51200K
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
CHARACTER SET CL8MSWIN1251
NATIONAL CHARACTER SET AL16UTF16
DATAFILE 'c:\oraclexe\app\oracle\oradata\XE\system.dbf' SIZE 300M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE 'c:\oraclexe\app\oracle\oradata\XE\sysaux.dbf' SIZE 120M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'c:\oraclexe\app\oracle\oradata\XE\temp.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
SMALLFILE UNDO TABLESPACE UNDOTBS1 DATAFILE 'c:\oraclexe\app\oracle\oradata\XE\undotbs1.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED;
CREATE SMALLFILE TABLESPACE USERS DATAFILE 'c:\oraclexe\app\oracle\oradata\XE\users.dbf' SIZE 300M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
-- catalog
@%ORACLE_HOME%\rdbms\admin\catalog.sql;
@%ORACLE_HOME%\rdbms\admin\catblock.sql;
@%ORACLE_HOME%\rdbms\admin\catproc.sql;
@%ORACLE_HOME%\rdbms\admin\catoctk.sql;
connect system/manager
-- sqlplus profile
@%ORACLE_HOME%\sqlplus\admin\pupbld.sql;
@%ORACLE_HOME%\sqlplus\admin\help\hlpbld.sql helpus.sql;
connect sys/admin as sysdba;
-- xdb protocol
@%ORACLE_HOME%\rdbms\admin\catqm.sql change_on_install SYSAUX TEMP NO;
@%ORACLE_HOME%\rdbms\admin\catxdbj.sql;
@%ORACLE_HOME%\rdbms\admin\catrul.sql;
-- compiling invalid objects
@%ORACLE_HOME%\rdbms\admin\utlrp.sql;
spool off;
exit;
-
Chạy createXE.cmd từ dòng lệnh với các đặc quyền của quản trị viên.
-
Đã xong.