一 ORACLE数据库特点:
- 支持多用户,大事务量的事务处理
- 数据安全性和完整性控制
- 支持分布式数据处理
- 可移植性(跨平台,linux转Windows)
二 ORACLE体系结构
- 数据库:oracle是一个全局数据库,一个数据库可以有多个实例,每个实例有对应的实例名
- 实例:实例就是将oracle从磁盘读到内存形成一个进程,进程与进程之间互不干扰(类似于多个oracle)
- 数据文件(dbf):数据库的物理存储单位,数据库的数据是存储在表空间中的,一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间,数据文件被加入到表空间后就不能删除这个文件,想要删除数据文件,只能删除其所属于的表空间(一个文件叫做xx.dbf,指的是其物理名称)
- 表空间(管理数据文件,oracle特有):一个或多个数据文件的逻辑名称,通过逻辑名称操作一个或多个数据文件,表空间分为很多段,一个段分很多区,一个区分很多数据块(逻辑上最小的),一个数据块对应一个磁盘块(OS块物理上的)
- 用户:一个实例包含多个用户,一个实例包含多个表空间,一个表空间包含多个用户,表空间是个逻辑单位,用户可以建在表空间上,对应的用户创建的表也在这个表空间中(在表空间的数据文件中,若一个表空间有多个数据文件则进行随机存储)
- ps:表空间是一个逻辑单位,管理了很多个物理单位,这些物理的数据文件可以分布到不同的服务器上,无论最后存到哪里,只要找到表空间就能找到数据
三 虚拟机的挂载
- 启动vm,找到对应的vmx文件双击既可自动进行挂载
四 虚拟机增加网卡
- 工具栏编辑/虚拟网络编辑器
- 三种网卡模式:(本次操作选择仅主机)
- 桥接模式:表示本地计算机与虚拟机处于同一个局域网,必须有外围的网络环境(需要插网线到交换机上)
- 仅主机:表示本地计算机与虚拟机通过一根网线连接起来(不受外部网络影响)
- NAT模式:表示本地计算机与虚拟机共享了一个ip地址(本地计算机联网了,虚拟机也能连上网,但本地计算机与虚拟机无法连接)
- 单击添加网络,选择网卡名称,配置子网ip和子网掩码(可以不用DHCP分配ip地址)应用确定,于本地网络中查看新增的网卡ip地址是否正确
- 将网卡设置给虚拟机,右击虚拟机设置网络适配器(选择自定义中的新增的网卡,自己建立的网卡网段容易改),单击确定
- 想要虚拟机与本地计算机在一个网络下通信,两者的ip地址必须处于同一个网段
- 于虚拟机控制面板/网络连接/本地连接/属性/Internet协议中将ip地址固定下来
- 通过ping命令进行测试两者网络是否连通
五 安装ORACLE
- 将本地计算机的ORACLE安装包复制到虚拟机的C盘中,双击setup.exe安装,输入对应密码(用于超级管理员账户)
- 安装成功后可在cmd中通过命令sqlplus system/password 进行登录(安装后默认用户名为system)
- 查询当前数据库所有的表select * from tabs;
六 远程连接ORACLE
- 本地计算机中输入sqlplus system/password@192.168.80.10:1521/orcl(orcl是实例名1521是端口号)远程连接ORACLE(通过sqlplus的工具instantclient)
七 PLSQL可视化开发工具
-
安装的目录中不能有空格中文(可以安装但是无法远程链接),默认安装破解
-
首先单击cancel,虽然没有登录但是会进入主界面(没连接数据库)
-
进行配置,工具的首选项的连接(connection)中配置home(instantclient工具的目录位置),library(工具目录下的oci.dll文件),之后单击apply再点击ok,需要借助ORACLE的远程连接工具才可以进行连接。
-
将远程的tnsnames.ora文件(oracle/product/10.2.0(版本号)/db_1/NETWORK/ADMIN/tnsnames.ora)拿到本地根目录下进行配置(告诉ORCL(本地名称)要到HOST对应的地址找orcl实例(service_name)远程实例名)保存,相当于刚才sqlplus的@符号后面的部分
-
配置系统变量(声明远程文件的位置),变量名为TNS_ADMIN,变量值为E:\(一般放在根目录不要放的太深)
八 可能遇到的问题
- 中文处理问题:select userenv('language') from dual;该函数的作用是查出当前服务器的编码格式(dual是伪表),将服务器的编码配置到本地的客户端上(复制查询出的结果SIMPLIFIED CHINESE_CHINA.ZHS16GBK),设置系统变量变量名为NLS_LANG(首字母本地语言支撑),变量值为刚才的查询结果,重新进入PLSQL生效。
- 可能出现中文变成?的问题,此刻进入oracle的注册表的home中查看NLS_LANG对应的值是什么,将其修改为中文编码格式,然后再回到本地pc中设置对应的环境变量
- ORA-12514问题:
① 先看oracle的监听和oracle的服务是否都启动了。启动oracle监听:
cmd的命令行窗口下,输入lsnrctl start,回车即启动监听。
② 查看oracle的sid叫什么,比如创建数据库的时候,实例名叫"orcl",那么先手工设置一下oralce的sid,cmd命令窗口中,set ORACLE_SID=orcl
③ 再输入sqlplus /nolog,回车
再输入 conn / as sysdba;回车
④ 再输入startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup。
⑤ 过几秒钟等命令运行完成,就能连接了。这个时候,可以输入"select * from user_tables;"测试一下,看是否有查询结果。