如何在安装Oracle数据库11g Express Edition后创建新的数据库?

118

我已在我的电脑上(Windows 7)安装了Oracle Database 11g Express Edition,并安装了Oracle SQL Developer。

我想要创建一个简单的数据库开始使用,可能只有一个或两个表,然后使用Oracle SQL Developer插入数据和查询数据。

当我打开Oracle SQL Developer时,它要求我创建一个新连接,因此它假定已经创建了一个数据库。

那么我的问题是,如何在Oracle 11g中创建初始数据库?

5个回答

63

当您安装XE时...它会自动创建一个名为“XE”的数据库。您可以使用设置的登录名“system”和密码来登录。

关键信息

服务器:(由您定义)
端口:1521
数据库:XE
用户名:system
密码:(由您定义)

此外,Oracle不太容易告诉您如何轻松地创建另一个数据库。您必须使用SQL或其他工具来创建“XE”之外的更多数据库。


6
谢谢,很棒的回答,这正是我所需要的。这个答案应该获得最高票数。 - KevSheedy
1
这个回答比被采纳的那个更有帮助。 - AfterWorkGuinness
2
这并没有回答问题。 - Philip Rego

59

这个链接:在 Oracle 11g Release 2 中创建示例数据库 是一个创建示例数据库的很好的例子。

这个链接:Oracle 11g 数据库常见问题新手指南 如果您在创建数据库时遇到了一些常见问题,应该会帮助您。

祝你好运!

编辑:由于您使用的是 XE 版本,应该已经创建了一个数据库,为了连接 SQL*Plus 和 SQL Developer 等工具,信息在这里:连接到 Oracle Database Express Edition 并探索它

提取:

从 SQL Developer 连接到 Oracle Database XE SQL Developer 是一个客户端程序,您可以使用它访问 Oracle Database XE。对于 Oracle Database XE 11g Release 2(11.2),您必须使用 SQL Developer 版本 3.0。本节假定 SQL Developer 已安装在您的系统上,并显示如何启动它并连接到 Oracle Database XE。如果您的系统上未安装 SQL Developer,请参阅 Oracle Database SQL Developer 用户指南以获取安装说明。

注意:

对于以下过程:第一次在系统上启动 SQL Developer 时,您必须在步骤 1 中提供 java.exe 的完整路径。

对于步骤 4,您需要一个用户名和密码。

对于步骤 6,您需要一个主机名和端口。

要从 SQL Developer 连接到 Oracle Database XE:

启动 SQL Developer。

有关说明,请参阅 Oracle Database SQL Developer 用户指南。

如果这是您第一次在系统上启动SQL Developer,则您需要输入java.exe的完整路径(例如,C:\ jdk1.5.0 \ bin \ java.exe)。在提示后输入完整路径或浏览到该路径,然后按Enter键。

Oracle SQL Developer窗口会打开。

在窗口的导航框架中,单击连接(Connections)。

连接面板将出现。

在连接面板中,单击图标新建连接(New Connection)。

新建/选择数据库连接(New/Select Database Connection)窗口将打开。

在新建/选择数据库连接窗口中,在字段“连接名称(Connection Name)”、“用户名(Username)”和“密码(Password)”中键入相应的值。

为保证安全性,您键入的密码字符会显示为星号。

在密码字段附近是保存密码的复选框。默认情况下,它处于未选中状态。Oracle建议接受默认设置。

在新建/选择数据库连接窗口中,单击选项卡Oracle。

Oracle窗格将出现。

在Oracle窗格中:

对于连接类型(Connection Type),请接受默认设置(Basic)。

对于角色(Role),请接受默认设置。

在主机名(Hostname)和端口(Port)字段中,可接受默认值,也可键入相应的值。

选择选项SID。

在SID字段中,键入接受默认设置(xe)。

在新建/选择数据库连接窗口中,单击按钮测试(Test)。

连接将进行测试。如果连接成功,则状态指示器从空白更改为“成功”。

如果测试成功,请单击按钮连接(Connect)。

新建/选择数据库连接窗口将关闭。连接面板将显示您在第4步中输入于“连接名称(Connection Name)”字段中的连接名称。

您现在已进入SQL Developer环境中。

要退出SQL Developer,请从“文件”菜单中选择“退出”。


1
你的意思是说Database Configuration Assistant是随着数据库一起部署的吗?我找不到它。 - Zo72
5
抱歉,我刚注意到您正在使用XE。它只允许一个实例,安装软件时没有提示您创建实例吗?您应该已经创建了一个名为“XE”的数据库。您还应该设置SYS和SYSTEM用户的密码。 - Ollie
3
谢谢你的帮助,我会检查一下,如果正确的话我会给你打上正确的标记。 - Zo72
1
最好使用描述性词汇来引用链接,以防它们被破坏,就像您的第一个链接一样,我发现它已经损坏了。然后,您可以通过Google搜索找到它。希望对您有所帮助。 - James Drinkard

14

如果您想在XE中创建新的模式(schema),您需要创建一个用户并分配其权限。按照以下步骤进行:

  • 打开SQL*Plus命令行界面
SQL> connect sys as sysdba
  • 输入密码
SQL> CREATE USER myschema IDENTIFIED BY Hga&dshja;
SQL> ALTER USER myschema QUOTA unlimited ON SYSTEM;
SQL> GRANT CREATE SESSION, CONNECT, RESOURCE, DBA TO myschema;
SQL> GRANT ALL PRIVILEGES TO myschema;

现在您可以通过Oracle SQL Developer连接并创建表格。


4
"如何创建初始数据库?"
在安装XE时,您已经创建了一个数据库。在安装过程中,会提示您为SYSTEM账户输入密码。使用该密码连接到应用程序菜单上的SQL命令行,即可连接到XE数据库。
XE文档在线且相当有帮助。请点击此处查看
值得一提的是,11g XE有几个限制条件,其中之一是每台服务器只能有一个数据库。因此,使用预安装的数据库是明智的选择。"

这并不是一个真正的答案,只是使用现有的答案?他问如何制作一个新的。 - Gherbi Hicham
1
@gherbihicham - 求助者的实际问题是“如何创建初始数据库?”我解释说安装过程会创建一个初始数据库。事实上,他们正在使用XE,它每台机器只有一个数据库的限制,因此告诉他们如何创建另一个数据库是没有意义的。 - APC

2

将以下代码保存在批处理文件中(例如createOraDbWin.bat)。更改参数值,如app_name、ora_dir等。以管理员权限运行该文件。批处理文件将创建一个基本的Oracle数据库:

注意:可能需要很长时间(大约30分钟左右)

REM ASSUMPTIONS
rem oracle xe has been installed
rem oracle_home has been set
rem oracle_sid has been set
rem oracle service is running

REM SET PARAMETERS
set char_set =al32utf8
set nls_char_set =al16utf16

set ora_dir=d:\app\db\oracle
set version=11.2.0.0
set app_name=xyz
set db_name=%app_name%_db
set db_sid=%db_name%_sid
set db_ins=%db_name%_ins
set sys_passwd=x3y5z7
set system_passwd=1x4y9z

set max_log_files=32
set max_log_members=4
set max_log_history=100
set max_data_files=254
set max_instances=1

set version_dir=%ora_dir%\%version%
set db_dir=%version_dir%\%db_name%

set instl_temp_dir=%db_dir%\instl\script

set system_dir=%db_dir%\system
set user_dir=%db_dir%\user
set undo_dir=%db_dir%\undo
set sys_aux_dir=%db_dir%\sysaux
set temp_dir=%db_dir%\temp
set control_dir=%db_dir%\control

set pfile_dir=%db_dir%\pfile
set data_dir=%db_dir%\data
set index_dir=%db_dir%\index
set log_dir=%db_dir%\log
set backup_dir=%db_dir%\backup
set archive_dir=%db_dir%\archive

set data_dir=%db_dir%\data
set index_dir=%db_dir%\index
set log_dir=%db_dir%\log
set backup_dir=%db_dir%\backup
set archive_dir=%db_dir%\archive
set undo_dir=%db_dir%\undo
set default_dir=%db_dir%\default

set system_tbs=%db_name%_system_tbs
set user_tbs=%db_name%_user_tbs
set sys_aux_tbs=%db_name%_sys_aux_tbs
set temp_tbs=%db_name%_temp_tbs
set control_tbs=%db_name%_control_tbs

set data_tbs=%db_name%_data_tbs
set index_tbs=%db_name%_index_tbs
set log_tbs=%db_name%_log_tbs
set backup_tbs=%db_name%_backup_tbs
set archive_tbs=%db_name%_archive_tbs
set undo_tbs=%db_name%_undo_tbs
set default_tbs=%db_name%_default_tbs

set system_file=%system_dir%\%db_name%_system.dbf
set user_file=%user_dir%\%db_name%_user.dbf
set sys_aux_file=%sys_aux_dir%\%db_name%_sys_aux.dbf
set temp_file=%temp_dir%\%db_name%_temp.dbf
set control_file=%control_dir%\%db_name%_control.dbf

set data_file=%data_dir%\%db_name%_data.dbf
set index_file=%index_dir%\%db_name%_index.dbf
set backup_file=%backup_dir%\%db_name%_backup.dbf
set archive_file=%archive_dir%\%db_name%_archive.dbf
set undo_file=%undo_dir%\%db_name%_undo.dbf
set default_file=%default_dir%\%db_name%_default.dbf

set log1_file=%log_dir%\%db_name%_log1.log
set log2_file=%log_dir%\%db_name%_log2.log
set log3_file=%log_dir%\%db_name%_log3.log

set init_file=%pfile_dir%\init%db_sid%.ora
set db_create_file=%instl_temp_dir%\createdb.sql
set db_drop_file=dropdb.sql

set db_create_log=%instl_temp_dir%\db_create.log
set db_drop_log=db_drop.log

set oracle_sid=%db_sid%

REM WRITE DROP DATABASE SQL COMMANDS TO FILE
echo shutdown immediate;>%db_drop_file%
echo startup mount exclusive restrict;>>%db_drop_file%
echo drop database;>>%db_drop_file%

REM EXECUTE DROP DATABASE SQL COMMANDS FROM THE FILE    
rem sqlplus -s "/as sysdba" @"%db_drop_file%">%db_drop_log%

REM DELETE WINDOWS ORACLE SERVICE
rem oradim -delete -sid %db_sid%

REM CREATE DIRECTORY STRUCTURE
md %system_dir%
md %user_dir%
md %sys_aux_dir%
md %temp_dir%
md %control_dir%

md %pfile_dir%
md %data_dir%
md %index_dir%
md %log_dir%
md %backup_dir%
md %archive_dir%
md %undo_dir%
md %default_dir%
md %instl_temp_dir%

REM WRITE INIT FILE PARAMETERS TO INIT FILE
echo db_name='%db_name%'>%init_file%
echo memory_target=1024m>>%init_file%
echo processes=150>>%init_file%
echo sessions=20>>%init_file%
echo audit_file_dest=%user_dir%>>%init_file%
echo audit_trail ='db'>>%init_file%
echo db_block_size=8192>>%init_file%
echo db_domain=''>>%init_file%
echo diagnostic_dest=%db_dir%>>%init_file%
echo dispatchers='(protocol=tcp) (service=%app_name%xdb)'>>%init_file%
echo shared_servers=4>>%init_file%
echo open_cursors=300>>%init_file%
echo remote_login_passwordfile='exclusive'>>%init_file%
echo undo_management=auto>>%init_file%
echo undo_tablespace='%undo_tbs%'>>%init_file%
echo control_files = ("%control_dir%\control1.ora", "%control_dir%\control2.ora")>>%init_file%
echo job_queue_processes=4>>%init_file%
echo db_recovery_file_dest_size = 10g>>%init_file%
echo db_recovery_file_dest=%log_dir%>>%init_file%
echo compatible ='11.2.0'>>%init_file%

REM WRITE DB CREATE AND ITS RELATED SQL COMMAND TO FILE    
echo startup nomount pfile='%init_file%';>>%db_create_file%
echo.>>%db_create_file%

echo create database %db_name%>>%db_create_file%
echo user sys identified by %sys_passwd%>>%db_create_file%
echo user system identified by %system_passwd%>>%db_create_file%
echo logfile group 1 ('%log1_file%') size 100m,>>%db_create_file%
echo group 2 ('%log2_file%') size 100m,>>%db_create_file%
echo group 3 ('%log3_file%') size 100m>>%db_create_file%
echo maxlogfiles %max_log_files%>>%db_create_file%
echo maxlogmembers %max_log_members%>>%db_create_file%
echo maxloghistory %max_log_history%>>%db_create_file%
echo maxdatafiles %max_data_files%>>%db_create_file%
echo character set %char_set %>>%db_create_file%
echo national character set %nls_char_set %>>%db_create_file%
echo extent management local>>%db_create_file%
echo datafile '%system_file%' size 325m reuse>>%db_create_file%
echo sysaux datafile '%sys_aux_file%' size 325m reuse>>%db_create_file%
echo default tablespace %default_tbs%>>%db_create_file%
echo datafile '%default_file%'>>%db_create_file%
echo size 500m reuse autoextend on maxsize unlimited>>%db_create_file%
echo default temporary tablespace %temp_tbs%>>%db_create_file%
echo tempfile '%temp_file%'>>%db_create_file%
echo size 20m reuse>>%db_create_file%
echo undo tablespace %undo_tbs%>>%db_create_file%
echo datafile '%undo_file%'>>%db_create_file%
echo size 200m reuse autoextend on maxsize unlimited;>>%db_create_file%
echo.>>%db_create_file%

echo @?\rdbms\admin\catalog.sql>>%db_create_file%
echo.>>%db_create_file%

echo @?\rdbms\admin\catproc.sql>>%db_create_file%
echo.>>%db_create_file%

echo create spfile from pfile='%init_file%';>>%db_create_file%
echo.>>%db_create_file%

echo shutdown immediate;>>%db_create_file%
echo.>>%db_create_file%

echo startup;>>%db_create_file%
echo.>>%db_create_file%

echo show parameter spfile;>>%db_create_file%
echo.>>%db_create_file%

REM CREATE WINDOWS ORACLE SERVICE
oradim -new -sid %db_sid% -startmode auto

REM EXECUTE DB CREATE SQL COMMANDS FROM FILE
sqlplus -s "/as sysdba" @"%db_create_file%">%db_create_log%

pause

欢迎您提出修改和改进意见!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接