虚拟机
Ping主机,正常
4 . 以主机为例,配置服务,虚拟机相似。
找到Oracle的安装目录,并找**:\app\wh\product\11.2.0\dbhome_1\NETWORK\ADMIN**
目录下的**listener.ora**文件,用高级文本编辑器打开并修改SID_LIST_LISTENER部分内容为此.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\wh\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\wh\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = E:\app\wh\product\11.2.0\dbhome_1)
(GLOBAL_DBNAME = orcl)
)
)
复制代码
其中SID_DESC、GLOBAL_DBNAME值为全局数据库名称,虚拟机的配置与此处相同。
5. 然后打开NET MANAGER在监听程序中的LISTENER中添加一份地址,并同样选择网络名与虚拟机相同的IP地址,设置端口号为1521,并在文件菜单处保存配置。
而后以管理员身份打开cmd命令行,输入lsnrctl进入监听程序配置,先stop停止,再用start启动监听服务,使得监听程序的新地址写入文件。
到此即可开始进行测试。
6.测试配置
同样在NET MANAGET界面中,点击服务命名,然后单击“+”号,新建oracle22(新建的服务名)服务,
然后选择TCP/IP协议
然后输入虚拟机的IP地址,端口号为1521
设置服务名为ORCL(待访问数据库的全局数据库名称),设置连接类型为默认链接或者共享连接,然后即可测试。
7.测试
测试成功,虚拟机操作与此相同,在此不做叙述。
**8.使用Navicat连接数据库**
分别使用sys、scott用户使用Navicat连接本机和虚拟机的Oracle,共4个连接
Navicat连接Oracle步骤为:
1.连接本机用scott用户
2.连接本地用sys用户
Navicat连接虚拟机的Oracle配置与连接本机相似,只将主机改为虚拟机的IP地址,建立后的4个连接为
分别在两个sys连接中给scott赋予sys权限
赋予后,即可使用scott用户创建连接,使用本机连接虚拟机
可以看到虚拟机有4个表,然后在虚拟机创建一个新表
再用本机连接查看虚拟机的数据表
9.分布式测试
然后用本机查看虚拟机的emp表内容 select * from emp @link1;
然后删除部分数据
delete from emp @link1 where ename='SMITH';
select * from emp @link1;
复制代码
删除完之后的查询结果如下图示:
虚拟机对主机的连接也可以用
create database link link1 connect to scott identified by tiger using '192.168.197.1:1521/orcl';
复制代码
建立
至此,分布式数据库的环境搭建已经完成
10.数据分片
首先在本机和虚拟机建立相同的
CUSTOMERS表
CREATE TABLESPACE
CUS_TSDATAFILE 'CUS_TS.dat'
SIZE 5M
AUTOEXTEND ON;
CREATE TABLE CUSTOMERS(
CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY,
FIRST_NAME VARCHAR2(30) NOT NULL,
LAST_NAME VARCHAR2(30) NOT NULL,
PHONE VARCHAR2(15) NOT NULL,
EMAIL VARCHAR2(80),
STATUS CHAR(1));
commit;
复制代码
然后分别再两边插入信息
向本机插入信息为:
insert into CUSTOMERS values (1,'w','h','119120110','123@qq.com','a');
复制代码
向虚拟机插入信息为:
insert into CUSTOMERS values (100001,'y','h','120120120','321@qq.com','a');
复制代码
然后分别查看两边的数据信息
在本机查看数据:
SELECT * FROM CUSTOMERs ;
复制代码
在虚拟机上查看数据:
然后在本机建立视图
CREATE VIEW customers_v AS
SELECT * FROM customers
UNION ALL
SELECT * FROM customers
@link1
复制代码
然后查看视图内容
SELECT * FROM customers_v;
复制代码
使用虚拟机进行相同操作视图结果:
实验结束。
**四**、实验总结**:**
由于专业课程中多用到
CentOS7的最小安装即无图形界面的虚拟机,所以优先考虑CentOS7的最小安装即无图形界面的虚拟机作为Oracle分布式的节点,查阅资料并尝试安装后发现无图形化的虚拟机在很多方面有较大问题,不好实现,而后又选则了Ubuntu20虚拟机,但同样在安装过程中那个发现Oracle在Linux中的安装部署过于复杂,多次尝试后还是无法完成,所以又使用Windwos虚拟机,首先考虑了Windows自带的Hyper-v虚拟机管理工具,实验大部分正常,只是在使用虚拟机访问本机时无法正常完成访问,总是报错为