![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库相关
梦想天空 分外blue
只是我的初心
希望能够做出让用户称赞的好产品。
未来有一天,因为我的代码,让这个世界上的一些人生活的更便利,感觉到一点点幸福或愉悦。
展开
-
记一次sqluldr未找到命令问题解决
2021年1月28日晚,同事在跑作业时,程序报了sqluldr命令未找到。这个环境此前已经多次运行过没问题,但是sqluldr命令确实突然不存在了。1.怀疑命令被卸载了查找安装目录,文件存在。2.环境变量被修改了,导致路径不对。经过认真排查环境变量,发现确实是环境变量路径被修改,导致程序无法找到安装路径导致。但是敲击sqluldr命令报权限不足给安装目录下的sqluldr文件赋权,至此问题解决。后经过了解,系同事修改了环境变量,导致系统找不到sqluldr目录导致。...原创 2021-02-04 11:02:29 · 2205 阅读 · 0 评论 -
一次数据库连接超时问题的解决
问题2:2020年10月16日数据库连接超时:分析:从报错日志分析无果,数据库连接日志已经满了。查配置文件数据库空闲时间60秒,最大连接数100两方面分析原因:1.数据库性能问题,超过数据库处理能力。2.程序问题,并发量太大。导致读写超时。解决方法:1.生成awr报告,确认不是由于数据库造成的问题。2.鲁班设置的并发问题。...原创 2021-02-03 09:49:02 · 1340 阅读 · 0 评论 -
DML,DDL,DCL定义
DML(data manipulation language )数据库操纵语言:select、insert、update、deleteDDL(data definition language) 数据库定义语言,创建表时用的sql.如create、alter、drop等。DCL(data control language) 数据库控制语言,是用来设置或更改数据库用户或角色权限的语句,包括(grant、deny、revoke等)语句。...原创 2021-01-27 09:37:37 · 103 阅读 · 0 评论 -
存储过程和触发器了解
存储过程:就是一组用于完成特定数据库功能的sql语句集,该sql语句集经过编译后,存储在数据库系统中。在使用时,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个一系列的数据库操作。触发器:是sql提供给开发人员的来保证数据完整性的一种方法,是一种特殊类型的存储过程,他是由事件来触发。作用:触发器是一种程序模块,是数据库中的一种自动处理机制。触发器的作用是保证数据库的安全性。例如:触发器通常对操作的记录来对数据库进行操作的审计,或实现复杂的约束条件。分类:DML触发原创 2021-01-23 19:04:05 · 274 阅读 · 0 评论 -
幂等性了解
幂等性: 用户对于同一操作发起的一次请求或者多次请求,结果是一致的,不会因为多次调用而产生了副作用。也可以称之为冲正,保证客户端与服务端的一致性,避免多次扣款。幂等性的解决方案:1.数据库添加唯一索引。2.分布式锁3.token机制,防止重复提交。...原创 2021-01-21 16:25:33 · 66 阅读 · 0 评论 -
oracle死锁的解决方法
oracle死锁的解决方法1.查找,SID和Serial#他俩共同确定一唯一的session。select object_name,machine,s.sid,s.serial#from vlockedobjectl,dbaobjectso,vlocked_object l,dba_objects o ,vlockedobjectl,dbaobjectso,vsession swhere l.object_id = o.object_id and l.session_id=s.sid;2.杀原创 2021-01-09 15:01:49 · 299 阅读 · 0 评论 -
对于数据量比较大的表如何导入
由于表字段变更较大,需要重建表并将老表tableold数据导入新表tablenew。1.将tableold重命名,删除索引,删除主键。2.将新表DDL拿过来,执行。3.将老表数据导入新表。insert into tablenew select * from tableold;此时问题来了,由于老表数据量比较大,insert速度慢。此时可以将表的logging模式改成nologging。然后在执行,速度会快很多。...原创 2021-01-06 09:31:31 · 315 阅读 · 0 评论 -
ORA03233 unable to extend table XXXX by 1024 in tablespace XXXX 记一次无法扩展表的问题
ORA03233 unable to extend table XXXX by 1024 in tablespace XXXX 记一次无法扩展表的问题一、问题发现更换表结构的时候,老表的数据无法插入新表中,报了如图中错误二、问题定位1.查询表空间select tablespace_name,sum(bytes)/1024/1024/1024 from dba_data_files group by tablespace_name;2.剩余空间大小:select tablespace_nam原创 2021-01-05 09:08:41 · 2880 阅读 · 0 评论 -
oracle数据库新增只读用户
oracle数据库新增只读用户,创建只读用户一般密码稍简单,因此需要修改策略文件1.–查询策略文件select * from dba_profiles where profile=‘DEFAULT’;2.–变更密码策略alter profile default limit password_verify_function null;3.–创建用户read,密码123456create user read identified by 123456;4.–授权grant connect to R原创 2020-12-23 13:45:31 · 512 阅读 · 0 评论 -
oracle创建DBA用户带表空间自动扩展
1.创建表空间DEFAULT_TBS,默认大小30Gcreate bigfile tablespace DEFAULT_TBS datafile ‘DEFAULT_TBS’ size 30G autoextend on next 500m maxsize 200G;2.创建临时表空间apptempcreate temporary tablespace apptemp tempfile ‘apptemp’ size 4G;3.创建demo用户,密码123456,指定用户表空间名 DEFAULT_TBS原创 2020-12-22 15:08:38 · 486 阅读 · 0 评论 -
exp/imp方式导入导出数据
使用exp/imp方式导表,前提是表没有子分区1.登上数据库服务器,执行脚本:exp demo/123456@ccdd file=tb.dmp TABLES=TBCCDAT0,TBCCACJ0 exp demo/123456@ccdd file=t9.dmp TABLES=TBCCACC0exp demo/123456@ccdd file=tbse.dmp TABLES=TBCCPFZ0,TBCCPMC0,TBCCPPL0expdemo/123456@ccdd file=VGCF.dmp T原创 2021-01-04 09:25:49 · 243 阅读 · 0 评论 -
linux系统安装并配置oracle客户端
linux系统安装并配置oracle客户端1.下载安装包wget http://repo.yun.ccb.com/PUBLIC/DB/oracle/oracle_client_12.2.0.1_linux.zip2.解压到当前目录unzip oracle_client_12.2.0.1_linux.zip3.安装rpm - ivh oracle_client_XXXXXXX.rpm4.切换用户su - oracle注:oracle用户是已创建好的5.配置环境变量vi /home/ora原创 2021-01-03 19:35:02 · 2630 阅读 · 11 评论 -
解锁数据库用户
解锁数据库用户如果某个用户由于多次尝试连接数据库,被锁。解锁方法如下:1.sys用户连服务器sqlplus / as sysdba;2.查被锁的用户状态select username,account_status from dba_users where username=‘demo’;3.给被锁的用户解锁alter user EIBCNK account unlock;4.修改次数为多次select * from dba_profiles where RESOURCE_NAME=‘FA原创 2020-12-30 09:16:17 · 1575 阅读 · 0 评论 -
sql语句中 truncate 和 delete 的区别
truncate 和 delete 的区别:效率回滚类型按条件删除tuncate高不支持DDL不支持delete低支持DML支持truncate 速度快是因为不会把操作记录到日志中,一次删除表的所有内容。并且不能回滚。所以所读快。delete 删除是讲表内容一条一条删除,并将删除记录记录到日志中。commit才会生效,如果没有commit,rollback也是可以的。所以效率低。如果是有条件的删除数据,则只能用delete + where 条件原创 2020-12-29 09:25:33 · 447 阅读 · 0 评论 -
sqluldr/sqlldr方式导出导入数据
1.linux系统中获取文件夹下所有文件名脚本:此步骤将所有表名放入一个.txt文件中#!/bin/bash# get all filename in specified pathpath=$1files=$(ls $path) for filename in $filesdo echo $filename >> filename.txtdone2.写生成sqluldr脚本:#!/bin/bashfor in1 in $(cat table.txt) do e原创 2020-12-28 14:09:32 · 2664 阅读 · 0 评论