文章目录

  • 1.虚表/日期/序列:SEQUENCE
  • 2.索引/视图/链路/同义词:create index/view/link/synonym
  • 3.表空间/数据文件/启动关闭/权限/备份恢复:exp/imp
  • 4.清理空闲会话/归档日志:kill session,archive log list
  • 5.系统高可用性:rac

1.虚表/日期/序列:SEQUENCE

oracle的虚表dual用来构成select的语法规则,不要当表来看,oracle保证dual里永远只有一条记录,可用它来做如下很多事。


如下若是c语言写1/86400就是=0(因为整数除),只有浮点数才能这样运算。oracle中是非常精确的,不用担心精度问题。

如下sysdate函数返回值可以当成值来用。






SQL>CREATE SEQUENCE ABC INCREMENT BY 1 START WITH 1 MAXVALUE 9999999999 NOCYCLE NOCACHE;

如上新建一个序列第一次取当前值是取不到的(提示该序列在此会话中未定义),必须.nextval再.currval取当前值。下面起步为100,步长为5。

下面给表增加两个字段crttime和keyid(导出数据时用到keyid),下面在crttable.sql中


如下insert into里必须有主键obtid和ddatetime,将序列生成器下个值赋给keyid字段


下面为rowid伪列和rownum伪列:rowid(是数据详细地址,通过rowid,oracle可最快定位某行具体的数据在磁盘中存放的物理位置)的格式不用管。rownum(查询返回的结果集中行的序号,可使用它来限制查询返回的行数)是变的是结果集的一个序号(C语言很少用rownum)。

如下第一行select时需要将rownum和rowid写出来查询才能看到,第二行用rowid作为查询或更新的条件最快(区别索引)

如上每条记录虽然存在数据库里(即表空间,表空间还是数据文件)最后还是存在磁盘上(在磁盘上就有位置),就是/oracle/base/oradata/snorcl11g里的.dbf文件。vi crttable.sql


vi psurfdata.cpp


下面是以shqx用户登陆。

2.索引/视图/链路/同义词:create index/view/link/synonym

虚日序,索视链同。如下decode函数如果sex为1显示男,为2显示女…(if 1 男,else if 2 女,else if 3 非男非女,else if null 不确定,else 错误)。

keyid从序列生成器取出来我们没把它当成主键,应该它是唯一的索引(索引也是数据,需要存储空间),因为keyid不可能重复。

索引创建时是否指定为唯一索引呢?看列的性质如obtid+ddatetime是唯一的,keyid是唯一的【只拿obtid出来或只拿ddatetime出来肯定不是唯一的,若创建唯一索引的话数据插入时插不进去。比如现在建一个表,表里有一个字段弄成唯一索引,再往里插入重复的值肯定报错】。

如果某列出现在查询条件中,而列的数据是无序的,查询时只能从第一行开始一行一行匹配。创建索引就是对某些特定列中数据排序或归类,生成独立索引表。在某列创建索引后,如果该列出现在查询条件中,oracle会自动的引用该索引,先从索引表中查询出符合条件记录的ROWID,由于ROWID是记录的物理地址,因此可根据ROWID快速定位到具体记录。

唯一索引效果相当于主键约束(即主键不允许重复),当表和索引在不同的表空间时效率更高,如下数据库自动将obtid和ddatetime主建字段创建唯一索引,下面在crttable.sql中。



每建一个索引就相当于把列的数据拿出来单独存放,如下创建索引的实质就是2列(rowid也算1列)或多列(与上面依次对应)拿出来组成一个像表一样的对象(像书的目录),用专门空间存放。所以索引有开销,虽提高查询效率,但一方面是需要更多的存储空间,另一方面是影响表的增、删、改的性能(对数据进行操作时,索引需要更新),所以不能表的什么字段都建上索引,需要设计,规范如下。

适合建立索引的列特点:where后经常用到的列,主键本身唯一性索引,保持数据唯一性。下面在plsql developer中tools菜单里Explainplan,选中F5分析。




ddatetime在数据库中是整数

如上如果业务系统对数据库进行全表扫描的话,我们监控查到告诉他做改进

如下第三条就是上面to_char函数用不了索引


视图就是访问数据的一个窗口,当成一个表来用,下面为先授权

如上可以exit退出,也可直接切换connect scott用户


视图不占用表空间,在emp将hiredate设置为系统时间,从v_emp查也有效果







drop view …


如下登录sqlplus是客户端,数据库服务端在tnsnames.ora中snorcl…198里配置ip和端口

如下注意snorcl11g_to_198中间有个to


如下设为私有的话,自己可以用自己

如上方法如果改了如下服务名,就不好用了

如下另一种方法创建不用snorcl11g_198服务名

下面连接远程数据库服务器不要产生远程事务:1.性能低,2.远程事务容易拖垮数据库,对远程数据库的访问可以select,但不要update,insert,delete(都会产生事务)

下面是同义词:数据库对象(表,视图,序列,存储过程,包)的一个别名。

如下dblinkname指snorcl11g_198等等


实际不可能给shqx和密码给客户,给普通用户如scott给客户并授权

如下是更多sql,如下先查下有什么表:select * from tab;结果集不包含1234…这个列和EMPNO…这个行(就是外面框架)

如下是列的拼接即内容的拼接,前面是字符串后面是数字也可以拼接,行没有显示(sal+100),但结果集里最后有数字900,拼接符||不是C语言中的或,优先级高于+号。

对表使用别名,如下内表是dept,外表是emp

distinct关键字,取结果集中的唯一值,去重,如下有很多30,20,10重复

如下最后一个dname出问题


如下创建的aaa除了表和列,其他数据库对象都没有。下面1=2为了只保留表结构即第一行OBTID,DDATE…。

向aaa这个空表(前面1=2)insert,keyid不允许重复是唯一索引的约束,aaa没继承这些约束,所以keyid插入了3个1,但aaa继承了字段空还是非空这些属性。


如上给t_surfdata表增加一个obtname空字段,如下将t_obtcode中obtname字段值赋给t_surfdata中obtname空字段

3.表空间/数据文件/启动关闭/权限/备份恢复:exp/imp

vi .bash_profile,服务器安装好数据库后可装多个实例,就像类创建/定义/实例化一个对象/变量。

安装数据库的服务器有一半内存分配给oracle数据库的,不要太去关注oracle数据库这个概念。关注表空间这概念,建表时可指定表空间。不想创建表空间,USER表空间够用就用。





如上三行不用dbstart命令脚本启动数据库,如下dba重新登录,创建用户并授权,授权后需要重新登陆才生效。

如下revoke撤销权限是立马生效

数据处理好后别的业务系统要使用这数据,给分配一用户:给这用户connect和resource权限,再授权grant select any table to…

如下是备份和恢复:括号要\来转义,以下为表模式导出。.dmp约定命名,表示是oracle的exp卸出来的。rows=n(no)表示只导出表定义,没导出数据。注意数据库字符集和版本。


以下为导入(必须是有dba权限的用户【如下shqx/pwdidc有dba权限】,导入的文件就是上面导出的.dmp文件),索引那些都会导进来但不能重复导入一样的表。

以下为用户模式导出(表模式只导出表,没有序列等等),将shqx这用户全导出。把shqx用户删了,创建一用户再把导入,整个用户完整恢复如下。

4.清理空闲会话/归档日志:kill session,archive log list


如下SQL*Net其实就是tcp的服务程序,是oracle的网络软件


自动创建文件:vi listener.ora

LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521)))(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)))))


vi listener.ora


别人用完我数据库不断开,我可以强行断开session


sqlplus / as sysdba;oracle日志有两种方式:归档,非归档(非归档模式在如下三个在线保留的日志:有的话就可以恢复,没有的话就恢复不了。所以经常改为归档模式)

NOARCHIVELOG为非归档模式,如上两种方式查看oracle是否为归档模式,如下由非归档转为归档。

如下归档日志文件名也可以叫…dbf

如上切换成归档模式成功,如下如果在线日志满了会自动写入归档日志里,对数据库很多操作,内容就写进去了。数据库不忙,一下写不进归档日志,所以手动切换日志,如下在线日志切换到了第二组,并写入了归档日志里。

删除归档日志,以前清理ftp采集的文件用时间,但是归档日志文件大小和数量由数据库繁忙程度决定,一分钟产生不定量的文件。目录满了,数据库归档失败,数据库停了。所以清理日志文件,保留最近多少个文件(按照归档日志文件名用Cdir类排序,从后面往前找):deletearchive.cpp见文章:https://blog.csdn.net/weixin_43435675/article/details/103476761

5.系统高可用性:rac

一台服务器比一般主机要大,同样cpu在里面不外露,但是服务器的磁盘以插拔形式暴露在外面有多个。如下是磁盘阵列技术,假设一个服务器有12个1T硬盘,如下raid0一但12个中一个坏了,没有一个1T补充上来,整个出问题。raid1两个盘之间互为备份,坏了就动态调整。



如下假如oracle数据库在一个服务器上运行,出问题了怎么办?(一般硬件故障)。Oracle三种高可用集群方案:1.RAC,2.Data Guard,3.OGG。如下是RAC技术,可以多个,但一般为两个。有的数据在内存,有的在缓存,2个要进行数据协调很麻烦,所以不是高性能,比单个服务器要慢。

如下为结合三种集群技术应用。

RAC有多个节点(上面为两个),应用程序只要做好客户端配置怎么连RAC数据库就行。

如下为应用系统的高可用性,不是数据库系统。把一个web系统相同全部部在多个服务器上,ip地址只有一个,那怎么访问呢?访问一网站时首先访问到nginx,nginx将访问请求均匀分给服务器。

应用程序系统手动切,不像oracle的RAC和dataguard那样自动切。因为应用程序热切换难,普通系统可冷备份,2个服务器后台的应用程序以及环境都准备好,一接到切换通知立马登录服务器,冷切换,10分钟左右。银行系统必须热备份热切换:跑两套应用系统,数据库系统,加负载均衡。

【C/C++9】天气APP:Oracle的虚表/日期/序列,索引/视图/链路/同义词,数据库高可用性相关推荐

  1. 【数据库2】生成txt/xml文件,ftp,oracle安装/表操作/虚表/日期/序列/索引/视图/链路/同义词/高可用性,mysql/文件入库/清理/表结构设计/交换/收集

    文章目录 1.生成数据:crontab 2.ftp:ftp是tcp/ip协议族中一员,分客户端和服务端 2.1 安装:linux操作系统的用户也是ftp的用户,可以配置专用的ftp用户,专用的ftp用 ...

  2. Oracle中查询用户表/索引/视图的创建语句

    1.查询当前用户下表的创建语句 select dbms_metadata.get_ddl('TABLE','ux_future') from dual; 2.查询其他用户下表的创建语句 select ...

  3. 开源一个天气APP Build with React Native

    About Github 断断续续花了几天的时间,利用网上开放的小米天气接口,基于React native 写了一个天气APP.App store 在审核中.设计能力有限,天气动画只加了两个,AE导出 ...

  4. 制作一个功能丰富的Android天气App

    简易天气是一个基于和风天气数据采用MD设计的Android天气App.目前的版本采用传统的MVC模式构建.通过丰富多彩的页面为用户提供日常所需的天气资讯. 项目说明 项目放在github上面 地址是: ...

  5. 【C/C++13】天气APP:数据挖掘/HTTP协议/非结构化数据存储(filetoblob.cpp),数据管理/监控告警(hsmtable.cpp,tbspaceinfo.cpp)

    文章目录 1. 数据挖掘:/etc/rc.local,sudo su 2.HTTP协议:优先wget 3.非结构化数据存储:blob,pzhrain24file 4.数据管理子系统:数据字典表 5.监 ...

  6. java天气app_MVP+RxJava2+Retrofit2 实况天气app

    前言 我在这些文章中有介绍一些框架的简单使用方法,但是是分开使用的,现在我们把这些框架结合起来,来搭建一个简单的实况天气app,首先我会用MVP模式搭建app的大致框架,然后将RxJava2和Retr ...

  7. flutter天气_牛笔!自己用Flutter撸一个天气APP

    这是一款简约风格的 flutter 天气项目,提供实时.多日.24 小时.台风路径以及生活指数等服务,支持定位.删除.搜索等操作. 下图为主页效果: 开始 本身作为天气 APP,自定义绘制自然少不了, ...

  8. 用android制作一个记事本app_用扁平化呈现一个天气APP

    作为当下最火的设计风格之一,扁平化设计其实是一种简约的Ul 设计理念,现被广泛应用于图形用户界面上,在图形材料,例如海报,艺术作品,指导文档,各类出版物等方面尤为常用.  今天为大家带来了我最近的扁平 ...

  9. 苹果天气不显示_热门天气APP被苹果拿下,安卓用户不能再使用

    近日,Android平台最受欢迎的订阅式天气APP之一Dark Sky官方宣布其被苹果收购.收购后,Android和Wear OS上的Dark Sky APP都会在2020年7月1日下架,届时将关闭服 ...

最新文章

  1. SAP社区改版之前的一些截图,怀旧啊
  2. hibernate注解方式来处理映射关系
  3. php 读取onedrive文件夹,oneindex
  4. 纪中A组模拟赛总结(2021.7.14)
  5. kailinux mysql提权_linux下mysql提权
  6. 【原创】开源Math.NET基础数学类库使用(05)C#解析Delimited Formats数据格式
  7. 电子秤连接_电子秤称重仪表故障与维修
  8. leetcode437. 路径总和 III
  9. mysql 主从同步机制
  10. 2010年8月初 泉州将地震 预言还是谣言?
  11. RobotStudio 示教器编程:MoveC指令
  12. Open Judge 百练 1003 宿醉(C语言)
  13. fflush(stdout)作用
  14. Linux查看系统基本信息
  15. 揭开光宇华夏高层几位伪君子炒作的真相
  16. Facebook跨境电商广告投放入门篇
  17. 弘辽科技:拼多多推广单元是什么意思?怎么做推广?
  18. “高精尖”智慧钢厂轻松打造!图扑软件数字孪生yyds
  19. 破解WiFi并且成功连接!原wifi主人想哭~
  20. 加密解密工具 之 仿射密码

热门文章

  1. RPM安装包-Spec文件參数具体解释与演示样例分析
  2. Windows Azure 安全最佳实践 - 第 1 部分:深度解析挑战防御对策
  3. Linux软件安装之RPM的安装技巧
  4. mysql 复制表耗时_聊一下mysql的表复制
  5. 实验9 结构程序设计 6-1 计算两个复数之积
  6. linux eclipse下qt开发环境搭建,Qt Eclipse开发环境的部署 上篇
  7. vue 动态添加class_前端开发:Vue项目实战-Music
  8. apache +php + mysql_apache+php+mysql
  9. C 语言的可变参数表函数的设计
  10. BZOJ2005: [Noi2010]能量采集 莫比乌斯反演的另一种方法——nlogn筛