前提:安装好了Oracle 12c数据库,已有一个数据库实例xe,登录用户/密码:system/oralce
我用的是docker安装的Oracle 12c的实例:
docker run --name <docker_name> -d -p 8080:8080 -p 1521:1521 -v /home/<user>/docker/data/oracle_1521:/u01/app/oracle sath89/oracle-12c
具体参考 https://hub.docker.com/r/sath89/oracle-12c/
Note:用“-e VNC_PASSWORD=<password>"好像不起作用,连接时还是需要默认的密码oracle去连接。
1. 用oracle用户登录到Oracle 12c所在机器
2. 改变ORACLE_SID的值,假如想创建一个数据库实例mydb
ORACLE_SID=mydb
export ORACLE_SID
如需要请修改oracle用户的登录初始文件,以便以后每次登录都让ORACLE_SID是mydb
3. 用dbca创建数据库实例mydb
dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname mydb.example.com -sid mydb -responseFile NO_VALUE -characterSet AL32UTF8 -memoryPercentage 30 -emConfiguration LOCAL
提示输入密码时输入oracle
4. 创建完成后,用sqlplus连接Oracle
sqlplus "/as sysdba"
5. 先关闭数据库实例(具体我也不知道需不需要,不太懂Oracle,关掉的是不是已有的xe,我也没试)
SHUTDOWN immediate;
6. 启动新创建的数据库实例
startup force
“startup force”之前我还运行了一次“startup nomount”,不知道这步需不需要,最后是startup force后新的mydb SID起来了
7. 用system/oracle连接mydb SID
SQL> conn system/oracle Connected. SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/mydb/system01.dbf /u01/app/oracle/oradata/mydb/sysaux01.dbf /u01/app/oracle/oradata/mydb/undotbs01.dbf /u01/app/oracle/oradata/mydb/users01.dbf
看到tablespace文件都在mydb目录下
8. 创建新的tablespace dev1
SQL> create tablespace DEV1 datafile \'/u01/app/oracle/oradata/mydb/DEV1.dbf\' size 3000m;
9. 创建新的用户dev1
SQL> create user dev1 identified by password default tablespace DEV1;
10. 赋权限
SQL> grant dba,connect to dev1;
11. 提交修改
SQL> commit;
12. 退出sqlplus,用新的用户/密码: dev1/password就能登录了
oracle@<host>:/$ sqlplus SQL*Plus: Release 12.1.0.2.0 Production on Wed Oct 18 00:40:14 2017 Copyright (c) 1982, 2014, Oracle. All rights reserved. Enter user-name: dev1 Enter password: Last Successful login time: Tue Oct 17 2017 08:30:44 +00:00 Connected to: Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production SQL>