oracle数据库安装配置
oracle数据库是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
现在我们就来说说它的安装及配置,其实通常来说最简单的,适用于网上各种教程及入门的是oracle 10g版本,11g是在他的基础上稍加升级,用起来也没什么太大的差异,但今天我要说的是相对来说更复杂一些的12c,18c版本,oracle各版本下载(国外网站访问慢)把上面的accept ….前面的圆点点上,并找到你对应的windows版本下载。
这里只提oracle 12c/18c版本的安装,10g,11g基本是类似,由于博主已经安装很久了,并且折腾好几遍了,还有一堆已经设置好的东西,就不卸载重装了,这里就给链接参考Oracle 12C安装教程,博主是18c版本,过程基本一样。
这里要说的是这一部分,这里的你自己设置的口令在之后的sqlplus登录等地方要用到,务必记好,还有下面的创建为容器数据库及可插入数据库名,默认为orclpdb,这个是12c,18c的新功能,如果没有特殊需要,不建议勾选,但是大部分人都会忽略这块(包括我)就过去了,以至于后面因为这个坑,折腾了许久。但不要担心,你点了就点了,问题不大,我就是要来解决这个问题的,其实如果不点这个,后面应该会很省心,但说多了都是泪…
这里是一些概要信息,包括你所创建数据库的一些基本信息,及存储位置等,建议截图保存下来,以备后患,另外安装过程会很漫长,可以先把它挂着去干一些别的事。
至此安装就已经全部完成了,如果你看到了这个界面,那么恭喜你,你已经成功一大半了。记住界面上所提到的网址一般是https://localhost:5500/em/
这将是你之后通过网页访问数据的em网址。
接下来就是按部就班的搜sqlplus,用system/你的口令登录,和sys/口令 as sysdba。然后重点来了,在10g,11g中都会有一个scott用户作为样例用户,以及emp,dept,bonus,salgrade四张表作为样例表供用户进行初步了解,但在12c/18c中你会发现你找不到scott用户,没有就没有吧,大不了自己创建一个,但你又会发现报错了。
1 | SQL> create user scott identified by tiger; |
这就要提到上面所说到的,安装过程中勾选了容器数据库,oracle 12c和之后的版本在结构上做出了调整,引入了CDB和PDB的概念。刚才的创建scottt用户操作是在CDB中的操作,用sys/system默认登录的是CDB,但是如果想在CDB中创建用户(可以理解为公共用户)的话,那么必须在用户名前面加上“c##”,oracle 这么做的目的是为了区分CDB的用户(前面带“c##”的用户)和PDB用户。这点其实在em(上文所提)中也有体现,确保后台oracle服务开启or在sqlplus用sys/system登录显示连接成功,在浏览器网址栏输入https://localhost:5500/em/,然后用sys+口令(勾选以sysdba身份登录)/用system+口令,不勾,容器名不填(其实就是orclpdb)进入em界面管理你的数据库。
点用户->创建用户,就会有关于公用用户必须要c##开头的提示了。
说了这么多,那么到底如何找到藏身在pdb中的scott用户,并解锁他呢?要想链接到ORCLPDB,必须要在oracl\network\admin\tnsnames.ora文件下加入如下内容:
1 | ORCLPDB = |
这样,我们就可以链接ORCLPDB了。
首先,要启动ORCLPDB,先用sys登录到CDB,进行如下操作:
1 | SQL> alter session set container = ORCLPDB; |
这样我们就可以用sys登录到ORCLPDB了:
1 | SQL> conn sys@orclpdb/admin as sysdba |
我们查一下用没有SCOTT用户:
1 | SQL> select username from dba_users where username like '%SCOTT%'; |
终于都找到你了!!!
1 | SQL> alter user scott account unlock identified by tiger; |
但这个时候又发现还是找不到emp,dept,bonus,salgrade四张表(应该大部分人都是找不到,脑壳痛!),算了也不去找原因了,自己新建了,并填数据进去吧,oracle4张基本表的创建和数据添加注意要在scott用户下建表,然后添加完数据要打一个commit;命令才会上传到数据库,这里面有个坑,jul是七月英文July的缩写,添加数据的时候会报错,添加的时候改成7就好,问题不大。
到这里oracle 12c/18c 找不到scott用户的问题基本就解决了,但是每次还得先用sys登录CDB,然后启动PDB,这很麻烦,我们可以通过创建触发器的方式来自动启动PDB,触发器代码如下:
1 | CREATE OR REPLACE TRIGGER open_all_pdbs |
测试一下:
1 | SQL> CREATE OR REPLACE TRIGGER open_all_pdbs |
这样就可以直接在登陆的时候@orclpdb就可以访问了。至此我们就可以愉快的使用oracle数据库了!