oracle一般人能不能学,Oracle人门学习笔记

1.如何显示当前用户是谁?

show user;

2.进入sql*plus管理工具,运行里面输入

sqlplusw就可以了。

3.disc断开当前数据库的连接

4.passw修改密码命令

示例:passw 回车

更改snapall的口令

旧口令:*******

新口令:******

重新键入新口令:******

口令已更改

5.如何在忘掉用户密码的情况下修改密码。

alter user sys identified by snapall;

6.ping命令的其他技巧:在一般情况下还可以通过

ping对方让对方返回给你的TTL值大小,粗略的判断

目标主机的系统类型是Windows系列还是UNIX/Linux

系列,一般情况下Windows系列的系统返回的TTL值

在100-130之间,而UNIX/Linux系列的系统返回的

TTL值在240-255之间,当然TTL的值在对方的主机里

是可以修改的,Windows系列的系统可以通过修改注

册表以下键值实现。

7.文件操作命令

a.start和@打开

sql>@ d:/1.sql

sql>start d:/1.sql

b.edit编辑

sql>edit d:/1.sql

c.spool将sql*plus上的内容输出到指定文件中去

sql>spool d:/1.sql并输入sql>spool off

8.linesize设置显示行的宽度,默认是80

show linesize;

set linesize 90;

pagesize设置每页显示行的数目,默认是14

用法与linesize一样

9.授权和收回权限(系统权限是不会级联回收的,对

象权限会级联回收的)

grant connect to user;

grant select on emp to xiaoming;给小明赋予

查询当前用户的下的emp表的权限。

revoke connect to user;

revoke select on emp from xiaoming

如果有其它权限,收回select不会对其它权限由

影响。

10.resource这个权限可以在任意表空间下面建表。

11.如果是对象权限:

如果想让用户有赋予权限的权限,可以在后面添加

with grant option;

例如:grant select on emp to xiaoming with

grant option;

如果是系统权限

添加with admin option;

12.用户登陆次数太多会被限制。

创建profile文件

create profile lock_account limit

failed_login_attempts 3 password_lock_time 1;

alter user xiaoming lock_account;

13.要求用户定期更改密码

create profile myprofile limit

password_life_time 10 password_grace_time 2;

aler user xiaoming profile myprofile;

要求用户每10天去修改密码,宽限期为2天。

14.当不需要profile时,可以去删除。

drop profile myprofile cascade;

15.如何查看一个表的结构

desc 表名;

改一个表的名字

rename 旧表名 to 新表名;

16.oracle默认的日期格式是'09-6月-99'

表示是1999年6月9号。

可以更改数据库日期的默认格式。

alter session set nls_date_fromat='yyyy-

mm-dd';

17.delete 语句删除后可以恢复;

先savepoint aa;

然后delete;

然后rollback to aa;

18.清频命令

clear

19.使用列的别名排序

select ename,sal*12 "年薪" from emp order by

"年薪" asc;

列名需要使用双引号圈中

20.如何取消重复行

select distinct deptno,job from demp;

21.打开显示操作时间的开关

set timing on;

22.疯狂复制法

insert into users (userid,username) select

* from users;

然后不断执行;

23.oracle对字段里面的内容是区分的,对字段本身

不区分。

24.如何处理NULL值

使用nvl函数

select sal*13+nvl(comm,0)*13 from emp;

25.用查询结果创建表

create tabel mytable1(id,name,sal) as select

empno,ename,sal form emp;

26.union命令

将两个查询出来的集合并,重复的只保留一条数据

union all 命令

将两个查询出来的集合并,重复的也都保留原有数

目。

intersect 命令

取交集

minus 命令

取差集,用前面那个查询结果减去后面那个查询合

集。

27.to_date函数

插入时间格式,to_date('1988-12-2','yyyy-mm-

dd');

默认格式为2-12月-1988,不要用函数来表示。

28.update 语句跟新数据技巧

update emp set (job,sal,comm)=(select

job,sal,comm from emp where ename='SMITH')

where ename='SCOTT';

29.创建保存点命令

savepoint a1;

回退命令;

rollback to a1;

回退全部事务

rollback

注意:一旦提交commit;原来的保存点就没有了

,也就无法回退。

30.只读事务:只是允许执行查询,不能执行其他

dml操作。设置了只读事务后,其它会话更改信息,

也不会对当前的只读事务由影响。

命令如下:set transaction read only;

31.字符函数

lower(char):将字符串转化为小写的格式。

upper(char):将字符串转化为大写的格式。

length(char):返回字符串的长度。

substr(char,m,n):取字符串的字串。m代表从第几

个开始取,n代表取的字符个数。

select upper(substr(ename,1,1))||lower

(substr(ename,2,length(ename)-1)) from emp;

replace(char1,search_string,replace_string)

替换函数

32.数字函数

round(n,[m])该函数用于执行四舍五入,如果省掉

mround(n),则四舍五入到整数;如果m是正数,则

四舍五入到小数点的m位后,如果m是负数,则四舍

五入到小数点的m位前。

trunc(n,[m])该函数用于截取数字,如果省掉m,就

截取小数部分,如果m是正数就截取到小数点的m位

后,如果m是负数,则截取到小数点的前m位。

mod(m,n)

floor(n)返回小于或是等于n的最大整数。

ceil(n)返回大于或是等于n的最小整数。

dual表是一个测试表,用了做测试的。

33. 日期函数

sysdate()------返回系统时间

add_months(d,n)

last_day(d): 返回d日期的月的最后一天

34.转换函数

to_char()

to_char(sal,'L99999.99');

to_char(hiredate,'yyyy-mm-dd hh24:mi:ss')

35.系统函数

sys_context

teminal:当前会话客户所对应的终端的标示符

lanuage:语言

db_name:当前数据库的名称

nls_date_format:当前会话客户所对应的日期格式

session_user:当前会话客户所对应的数据库用户名

current_schema:当前会话客户所对应的默认的方案

例如:想查询当前用的是哪个数据库

select sys_context('USERENV','db_name') from

dual;

host:返回数据库所在主机的名称

36.普通dba没有startup 和shutdown权限。

37.用户名,权限,角色

查询dba_user可以显示所有数据库用户的详细信息

查询数据字典视图dba_sys_privs,可以显示用户所

具有的系统权限;

查询数据字典视图dba_tab_privs可以显示用户具有

的对象权限;

查询数据字典视图dba_col_privs可以显示用户具有

的列权限;

查询数据字典视图dba_role_privs可以显示用户具

有的角色;

38.

查询数据库有多少种角色?

select * from dba_roles;

一般预先定义为25个

查询数据库中所有的系统权限,一般是dba

select * from system_privilege_map order by

name;

查询数据库中所有的对象权限,一般是dba

select distinct privilege from dba_tab_privs;

查询数据库的表空间

select tablespace_name form dba_tablespace;

如何查询一个角色包括的权限?

a.一个角色包含的系统权限

select * from dba_sys_privs where

grantee='CONNECT';

或者

select * from role_sys_privs where role='';

b.一个角色包含的对象权限

select * from dba_tab_privs where

grantee='CONNECT';

如何查看某个用户具有什么用的角色?

select * from dba_role_privs where

grantee='';

显示当前用户可以访问的所有数据字典视图

select * from dict where comments like '%

grant%';

显示当前数据库的全称

select * from global_name;

39.改变表空间的状态

1.使表空间脱机

alter tablespace 表空间名字|offline;

2.使表空间联机

alter tablespace 表空间名字 online;

3.只读表空间

当设置为只读是,就不能进行修改操作(但是系统

表空间无法改为只读状态)

alter tablespace 表空间名字 read only;

4.设置表空间为可读可写

alter tablespace 表空间名字 read write;

40.

1.如果知道表空间名字,想显示该表空间的的所有

select * from all_tables where

tablespace_name='表空间名字';

2.如果知道表名,想查看该表属于哪个表空间

select tablespace_name,table_name from

user_tables where table_naem='表名';

3.删除表空间

drop tablespace '表空间' including contents

and datafiles;

41.移动数据文件

假如说一块磁盘的一部分磁道被损坏了,改数据文

件不能使用了,为了能够重新使用,需要将这些文

件的副本移动到其他磁盘,然后恢复。

1.确定数据文件所在的表空间

select tablespace_name from dba_data_files

where file_name='数据文件的路径';

2.使表空间脱机

确保数据文件的一致性,将表空间转变为offline的

状态。

alter tabespace 表空间名字 offline;

3.使用命令移动数据文件到指定的目标位置

host move 损坏数据文件的路径 新的数据文件的路

径;

4.执行alter tablespace命令

在物理上移动了数据文件后,还必须一致性命令对

数据文件作逻辑的修改;

alter tablespace 表空间名 rename datafile

'原来的数据文件路径' to '新的数据文件路径';

5.是表空间联机

alter tablespace 表空间名 online;

42.

1.显示表空间的信息

select tablespace_name from dba_tablespaces;

2.显示表空间所包含的数据文件

select file_name,bytes form dba_date_files

where tablespace_name=='表空间名';

43.约束:约束用于确保数据库数据满足特定的商业

规则。在oracle中,约束包括:not null(非

空),unique(唯一,该列不能重复,但是可以为空

),primary key(主键,该列不能重复,而且不能

为null),foreign key(外键)和check(限制条件

)五种。

如果在建表时忘记建立必要的约束,可以在建表后

用alter table命令来为表增加约束,但是要注意,

增加not null约束时,需要 使用modify选项,而增

加其他四种约束使用add选项。

例如:alter table jacky modify 字段名 not

null;

alter table jacky add constraint 约束名

unique(字段名);

alter table jacky add constraint 约束名

check(字段名 in ('zon','df','dfs'));

如何删除约束?

alter table 表名 drop constraint 约束名;

有些主键要删除,可能有外键的关系,无法删除,

要用如下命令:

alter table 表名 drop primary key cascade;

如何显示约束信息

1.显示约束信息

select

constraint_name,constraint_type,status,valida

ted from user_constraints where table_name='

表名';

2.显示约束列

select column_name,position form

user_cons_columns where constraint_name='约束

名';

44.索引

create index emp_index on emp(ename,job);

create index emp_index on emp(job,ename);

这两个索引时不同的。

45.权限

系统权限不是级联回收的。

对象权限是级联回收的。

46.角色

创建角色。

create role myrole1 not identified;

给空的角色赋予权限

grant create session to 角色名 with admin

option;

分配角色给用户

grant 角色名 to 用户名 with admin option;

删除角色

drop role 角色名;

问:如果一个角色被删除,那被分配这个角色的用

户还有权限吗?

答:用户权限没有了。

精细访问控制

47.PLSQL编程

PLSQL是oralce在标准的sql语言上的额扩展。

1.创建一个存储过程

create table mytest(name varchar2(30),passwd

varchar2(30));

create or replace procedure jacky219 is

begin

--执行部分

insert into mytest values('殷志刚','123');

commit;

end;

/

如何查看错误信息

show error;

如何调用过程

1.exec 过程名(参数1,参数2...)

2.call 过程名(参数1,参数2...)

编写规范

1.注释

单行注释 --

select * from emp;--取得员工信息

多行注释

/*...*/来划分

2.标示符号的命名规范

1)当定义变量时,建议用v_作为前缀,例如v_sal

2)当定义常量时,建议用c_作为前缀

3)当定义游标时,建议用_cursor作为后缀;

4)当定义例外时,建议用e_作为前缀;

包含定义部分和执行部分的pl/sql快

declare

v_ename varchar2(5);--定义字符串变量

begin

select ename into v_ename from emp where

empno=&no;

dbms_output.put_line('雇员

名:'||v_ename);

end;

/

重要:其中into代表将查询出来的值插入到v_ename

中去,&代表是要我们要从控制台输入值进去。

||代表是连接符。no只是随便是个变量名,可以用

aaa,bbb都可以。

48.函数

函数用于返回特定的数据,一般返回一个值。

例:

输入雇员的姓名,返回该雇员的年薪

create function sp_fun2(spName varchar2)

return number is yearSal number(7,2);

begin

select sal*12+nvl(comm,0)*12 into yearSal

from emp where ename=spName;

return yearSal;

end;

在sqlplus中调用函数的方法

var income number

call sp_fun2('殷志刚') into:income;

print income

1.包

包用于逻辑上组合过程和函数。

创建一个包,声明了该包有一个过程和一个函数

create package sp_package is

procedure update_sal(name

varchar2,newsal number);

function annual_income(name varchar2)

returen number;

end;

2.给包 sp_package实现包体

create package body sp_package is

procedure update_sal(name varchar2,newsal

number)

is

begin

update emp set sal=newsal where ename=name;

end;

function annual_income(name varchar2)

return number is

annual_salary number;

begin

select sal*12+nvl(comm,0) into annual_salary

from emp

where ename=name;

return annual_salary;

end;

end;

3.如何调用包的过程或是函数

exec sp_package.update_sal('SCOTT','120');

49.触发器

触发器是指隐含的执行的存储过程。当定义触发器

时,必须要指定触发的事件和触发的操作,常用的

触发事件包括insert,update,delete语句,而触发

操作实际就是一个pl/sql快。可以用create

trigger来建立触发器。

50.变量

1.定义标量

1.1定义一个变长的字符串

v_ename varchar2(10);

1.2定义一个小数 范围-9999.99-9999.99

v_sal number(6,2);

1.3定义一个小数并给一个初始值为5.4:=是pl/sql

的赋值号

v_sal2 number(6,2):=5.4

1.4定义一个日期类型的数据

v_hiredate date;

1.5定义一个布尔变量,不能为空,初始值为false

v_valid boolean not null default false;

%type类型

val_jacky emp.ename%type;表示变量val_jacky和

表emp中的字段ename,的长度为标准,这样就不会出

现长度不够的情况。

2.符合变量

用于存放多个值的变量,主要包括

pl/sl记录,pl/sql表,嵌套表和varray(动态表)

3.复合类型的pl/sql表

相当于高级语言的数组。

4.参照变量-ref cursor游标变量

例如:使用pl/sql编写一个快,可以输入部门号,

并显示该部门所有员工的姓名和他的工资。

declare

type sp_emp_cursor is ref cursor;

test_cursor sp_emp_cursor;

v_ename emp.ename%type;

v_sal emp.sal%type;

begin

open test_cursor for select ename,sal from

emp where deptno=&no;

loop

fetch test_cursor into v_ename,v_sal;

//update emp set sal:=sal+100 where

sal<200 and ename=v_ename;

exit when test——cursor%notfound;

dbms_output.put_line('名字:'||v_ename||'

工资:'||v_sa;);

end loop;

end;

51.控制结构

1.if then endif;

2.if then else endif;

3.if then elsif then else endif;

4.循环语句

4.1 loop end loop;

4.2 while..loop end loop;

4.3基本for循环

4.4goto语句,跳转;跳转的语句必须加《》

4.5输出语句开关:set serveroutput on;打开

set serveroutput off;关闭

52.编写分页过程

1.将一个表中的记录编号,

select t1.*,rownum rn from (select * fromo

emp) t1;

2.可以按照每10条来取。

select t1.*,rownum rn from (select * fromo

emp) t1 where rownum<1=0;

3.取第6条到第10条的语法

select * from

(select t1.*,rownum rn from (select * fromo

emp) t1 where rownum<10;)

where rn>=6;

4.分页的过程代码

create or replace procedure fenye

(tableName in varchar2,

Pagesize in number,

pageNow in number,

myrows out number,

mypageCount out number,

p_cursor out tespackage.test_cursor

) is

v_sql varchar2(1000);

v_begin number:=(pageNow-1)*Pagesize+1;

v_end number:=pageNow*Pagesize;

begin

v_sql:='select * from (select t1.*,rownum rn

from(select * from '|| tableName||') t1 where

rownum<='||v_end||' ) where rn>='||v_begin;

open p_cursor for v_sql;

v_sql:='select count(*) from '||tableName;

execute immediate v_sql into myrows;

if mod(myrows,Pagesize)=0 then

myPageCount:=myrows/Pagesize;

else

myPageCount=myrows/Pagesize+1;

end if;

end;

53.视图

视图是一个虚拟表,其内容友查询定义。

1.视图不占用磁盘空间

2.视图不能建索引

3.视图可以简化 复杂查询

4.视图可以提高安全性

创建视图

create view 视图名 as select语句 [with read

only(假如添加了这个,那这个视图就不能被修改)]

创建或者修改视图

create or replace 视图名 as select语句[with

read only];

删除视图

drop view 视图名;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

欧拉图

欧拉路径&#xff1a;每条边经过且只经过一次的路径 欧拉回路&#xff1a;如果从某个点出发&#xff0c;经过且只经过每条边一次&#xff0c;最后又回到这个点的路径 欧拉图&#xff1a;存在欧拉回路的图 图&#xff1a; 平凡图&#xff1a;只含有一个点 重边&#xff1a;两点之…

oracle rac standby,oracle RAC数据库建立STANDBY(二)

这篇文章描述为RAC环境创建STANDBY数据库。由于篇幅限制&#xff0c;加上碰到了很多的bug&#xff0c;只能将文章拆分成多篇。这章介绍STANDBY数据库创建的后续操作&#xff0c;并检查STANDBY运行机制&#xff1a;首先登陆实例&#xff0c;检查数据库状态&#xff1a;bash-3.00…

[MySQL] MySQL x64 下载地址

MySQLhttp://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.14-winx64.ziphttp://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-5.7.14.0.msiPHP ServerWampServer2.1d-x64.exe转载于:https://www.cnblogs.com/Areas/p/5759195.html

微信php翻译和天气预报整合,微信公众平台天气预报功能开发

本来是想自己直接从中国天气网获取信息并处理&#xff0c;后来发现处理起来太麻烦&#xff0c;而且要获取所有城市的城市编码&#xff0c;再有就是&#xff01;不支持国外天气&#xff01;&#xff01;(我们学校有很多毕业生在国外上学&#xff0c;所以我考虑还是做出支持国外天…

关于Jenkins找不到依赖Jar包问题

昨晚在Jenkins发布时遇到一个Jar包找不到的问题&#xff0c;控制台的报错信息如下&#xff1a; 说白了就是找不到依赖的Jar包&#xff0c;但是当我们回退到灰度的时候发现灰度的环境是构建是没有问题的&#xff0c;为什么同一套代码在两个环境却有天壤之别呢&#xff0c;本着试…

查看Linux服务器运行级别命令,linux命令1、如何查看当前的Linux服务器的运行级别?...

1、如何查看当前的Linux服务器的运行级别&#xff1f;答: ‘who -r’ 和 ‘runlevel’ 命令可以用来查看当前的Linux服务器的运行级别。2、如何查看Linux的默认网关&#xff1f;答: 用 “route -n” 和 “netstat -nr” 命令&#xff0c;我们可以查看默认网关。除了默认的网关信…

BIEE入门(一)架构

BIEE作为Oracle的新的商业智能平台企业版&#xff0c;起源于Oracle所收购的Siebel公司&#xff0c;BIEE原来叫做Siebel Analytic&#xff0c;但是Siebel也不是它的发明者&#xff0c;它是Siebel在2001年收购的另一个公司叫nQuire software的产品&#xff0c;这个从它的配置文件…

redhat linux 9.0 拷贝u盘的文件,肿么用U盘安装Linux,安装的是red hat 9.0…用Ubuntu很方便,redhat可以吗?...

下面有两种安装方法.从dos安装.这方法可以不用软盘,比较方便.得到dosutils目录这个目录里有从dos安装和软盘安装的工具.一般都在第一个iso文件里.在linux下可以这样装载iso文件.mount -o loop valhalla-i386-disc1.iso /mnt/cdromcd /mnt/cdromcd -r images /mnt/c 把dosutils目…

获得当前字符串的宽度

<!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>获得当前字符串的宽度</title> <script type"text/javascript" src"jquery-min.js"></script></…

linux需要的GLIBCXX版本,linux-如果我已经安装了GLIBCXX_4.1.2,则需要GLIBCXX_3.4.9吗?

我正在Fedora 8/9 64位(http://mediainfo.sourceforge.net/es/Download/Fedora)上安装MediainfoDLL的最新版本.我下载了libmediainfo-0.7.20和libzen0-0.4.3文件.当我尝试安装libzen0时,得到以下输出&#xff1a;# rpm -i libzen0-0.4.3-1.x86_64.Fedora_9.rpmwarning: libzen0…

小小动画

<script src"JS/jquery-1.7.2.min.js"></script><style type"text/css">* {margin: 0px;padding: 0px;}#dw {position: absolute;width: 200px;height: 70px;font-family: 迷你简书魂;font-size: 50px;}#zhezhao {position: absolute;wi…

linux so文件统一目录,linux加载指定目录的so文件

例如&#xff0c;有个so在/tmp/libs/libzmq.so.3&#xff1a;[winlindev6 libs]$ ls /tmp/libs/ -lhtotal 2.5Mlrwxrwxrwx 1 winlin winlin 15 Dec 12 12:58 libzmq.so -> libzmq.so.3.0.0lrwxrwxrwx 1 winlin winlin 15 Dec 12 12:58 libzmq.so.3 -> libzmq.so.3.0.0-rw…

VBS基础篇 - Dictionary对象

VBS基础篇 - Dictionary对象 Dictionary是存储数据键和项目对的对象&#xff0c;其主要属性有Count、Item、Key&#xff0c;主要方法有Add、Exists、Items、Keys、Remove、RemoveAll。 建立字典 Dim Dict : Set Dict CreateObject("Scripting.Dictionary")添加键值对…

linux编译mesa,如何在Ubuntu 16.04,17.10中安装Mesa 17.3.3

最新的MESA 3D图形库17.3.3现在在Ubuntu-X team PPA存储库中为Ubuntu 16.04和Ubuntu 17.10提供。Mesa 17.3.3实现了OpenGL 4.5 API&#xff0c;但由glGetString(GL_VERSION)或glGetIntegerv(GL_MAJOR_VERSION)/glGetIntegerv(GL_MINOR_VERSION)报告的版本取决于所使用的特定驱动…

iOS开发Swift篇—(三)字符串和数据类型

一、字符串 字符串是String类型的数据&#xff0c;用双引号""包住文字内容 let website "http://www.github.com" 1.字符串的常见操作 &#xff08;1&#xff09;用加号 做字符串拼接 let scheme "http://" let path “www.github.com” le…

linux查看xml文件的配置,3、kvm虚拟机日常管理与配置

KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理。1. 查看KVM虚拟机配置文件及运行状态(1) KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/autostart目录是配置kvm虚拟机开机自启动目录。(2) virsh命令帮助# virsh -help或直接virsh命令和&#xff0c;再执行子命令。如下…

hdu5726-GCD-ST表+二分

先用st表处理出所有l-r的GCD值&#xff0c;然后二分求得这些值一共出现了多少次。 1 #include<bits/stdc.h>2 3 #define inf 0x3f3f3f3f4 5 const int maxn100000;6 7 using namespace std;8 9 typedef pair<int,int> P;10 11 int l,r;12 13 int icase;14 15 int t…

linux桌面环境是什么意思,Linux 黑话解释:什么是桌面环境?

在桌面 Linux 世界中&#xff0c;最常用的术语之一就是 桌面环境(Desktop Environment)(DE)。如果你是 Linux 的新手&#xff0c;你应该了解一下这个经常使用的术语。什么是 Linux 中的桌面环境?桌面环境是一个组件的组合体&#xff0c;为你提供常见的 图形用户界面(graphical…

redhat linux 安装ftp服务,RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器

本文以RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器。安装服务器程序程序下载地址&#xff1a;&#xff0c;目前最新版本为2.0.3&#xff0c;源程序文件名为vsftpd-2.0.3.tar.gz。1&#xff0e;安装之前的准备&#xff1a;安装之前我们应该看看用户“nobody”和目录…

Hadoop 2.5.1集群安装配置

本文的安装只涉及了hadoop-common、hadoop-hdfs、hadoop-mapreduce和hadoop-yarn&#xff0c;并不包含HBase、Hive和Pig等。 http://blog.csdn.net/aquester/article/details/24621005 1. 规划 1.1. 机器列表 NameNode SecondaryNameNode DataNodes 172.16.0.100 172.16.0.…