数据库
w.ang.jie
“在广袤的空间和无限的时间中,能与你共享同一颗行星和同一段时光是我的荣幸。”——卡尔.萨根《宇宙》
展开
-
(MySQL gtid复制)设置从库跳过一个报错的事务
查看当前报错事务以及报错事务GTID节点:mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.192 Master_User: r原创 2021-07-05 11:36:28 · 758 阅读 · 0 评论 -
2021-07-01
报错从库show slave status\G显示有错误:mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Master_Host: 192.168.0.195 Master_User: repl M原创 2021-07-01 16:39:09 · 353 阅读 · 0 评论 -
mysql 查询事务对应线程
-- 查看事务对应的线程select t1.trx_id, t1.trx_state, t1.trx_query, t2.id, t2.state, t2.command from information_schema.innodb_trx t1, information_schema.processlist t2 where t1.trx_mysql_thread_id =t2.id\G-- 查询正在进行的事务select * from information_schema.innodb_trx;原创 2021-06-30 18:02:36 · 485 阅读 · 0 评论 -
联机配置MySQL的GTID复制(XtraBackup)
文章目录1. 准备1.1 在主库建立复制专属用户1.2 在主、从库安装XtraBackup1.3 配置主库到从库的SSH免密码连接1.4 停止从库的MySQL实例,以及清空其数据目录2. 环境检查2.1 检查主库中是否有不支持GTID的操作2.2 在主库联机设置GTID参数3. 备份3.1 主库备份并传输备份文件至从库3.2 从库根据备份文件进行数据恢复3.3 修改从库配置文件3.4 启动从库3.5 启动从库复制3.5 主库配置文件修改4. 报错处理4.1 Unknown redo log format原创 2021-06-30 11:37:46 · 662 阅读 · 1 评论 -
mysql 8 Linux企业版本安装
tar -Jxvf mysql-commercial-8.0.25-linux-glibc2.12-x86_64.tar.xzmv mysql-commercial-8.0.25-linux-glibc2.12-x86_64 /usr/local/# 软连接ln -s /usr/local/mysql-commercial-8.0.25-linux-glibc2.12-x86_64 /usr/local/mysql8# 创建MySQL组和用户groupadd mysqluseradd -r -g原创 2021-06-21 18:14:54 · 499 阅读 · 0 评论 -
linux yum install 失败报错:Transaction check error:
Transaction check error: file /usr/share/dbus-1/services/org.freedesktop.PackageKit.service from install of gnome-software-3.28.2-3.el7.x86_64 conflicts with file from package gnome-packagekit-common-3.14.3-7.el7.x86_64原创 2021-05-24 16:39:32 · 3824 阅读 · 2 评论 -
阿里云服务器 安装 轻量级OracleXE版本 过程
参考官方文档: 《Installing Oracle Database XE Using RPM Packages》大佬博客1:《CentOS7 静默安装Oracle XE 11g》大佬博客2:《阿里云centos 7.2安装oracle11gr2详细教程》[oracle@izbp15488qcahuq3k0n0qiz ~]$ sqlplus systemSQL*Plus: Release 18.0.0.0.0 - Production on Mon Dec 21 23:56:32原创 2020-12-23 22:29:02 · 247 阅读 · 0 评论 -
OmniDB 连接 ORACLE 报错提示DP-1047:Cannot locate a 32-bit Oracle Client library
使用 OmniDB 软件 连接Oracle数据库时 ,报错 Cannot locate a 32-bit Oracle Client library ;在网上查看说这是由于Oracle客户端instanceclient, 系统, Python 三者版本位数不对应。解决过程首先查看数据库服务端的版本:SELECT * FROM V$VERSION查询结果是64位查看python版本:也是64位;按理说Oracle客户端instanceclient不匹配的话应该要报错Canno原创 2020-12-20 17:22:41 · 3078 阅读 · 1 评论 -
Oracle 拼接字段
使用 listagg(合并字段,‘连接符号’) within group (order by 字段) 来实现列转行(需要oracle是11或以上)举个例子:WM_CONCAT()函数,默认用,隔开select t.table_key, wmsys.wm_concat(t.name) AS result from TEST_TABLE t where t.id = #{id} group by t.table_key order by t.create_time替换后 listagg()函原创 2020-12-07 14:12:31 · 5162 阅读 · 1 评论 -
Oracle批量将表中字段名全部转换为大写(通过一个简单存储过程)
今天查询一个数据字段一直提示字符无效,明明在数据库表字段中是存在的;查询后得知,数据库表字段为小写时,查询需要将字段名小写并加上双引号;表名同理,我这里表名是大写,暂时不需要改。搜到一个批量修改字段名为大写的存储过程,如下:登陆到要修改的用户下,执行:beginfor cl in (SELECT table_name,column_name from user_tab_columns WHERE column_name<>upper(column_name) and upper(c原创 2020-11-10 15:00:41 · 1420 阅读 · 0 评论 -
使用 `select table_name from user_tables`能够找到表,但是无法通过`select count(*) from table_name`,提示表视图不存在。
使用 select table_name from user_tables能够找到表,但是无法通过select count(*) from table_name,提示表视图不存在。查看发现所有表名在数据库中都是小写,改为大写后,即可通过select count(*) from table_name查询到数据量。或者查询时加上双引号,声明表名为小写。我将数据库里的表名改为大写后,查询时大小写的表名都可以支持了。...原创 2020-11-09 16:53:59 · 1411 阅读 · 0 评论 -
oracle 新建用户后用户只能用 as sysdba登陆,否则报错:ORA-01017: invalid username/password; logon denied
oracle 新建用户后用户只能用 as sysdba登陆,否则报错:ERROR:ORA-01017: invalid username/password; logon denied请输入用户名:ERROR:ORA-01017: 用户名/口令无效; 登录被拒绝查看原因是因为当前用户没有设置密码导致,登陆后修改密码,即可用普通用户登录。我记得当时设置了密码,检查发下,语法有问题,我用的是create user username identified by values 'password'原创 2020-11-09 16:16:24 · 1049 阅读 · 0 评论 -
python+SQL loader批量导入csv文件到Oracle(可新建表或追加数据)
一、前言根据项目开发需要,需要将某个文件夹下excel表中数据批量导入到Oracle数据库,数据有几百万条,字段约三百个,原始数据文件有几个G。一开始打算用python写一个脚本,用pandas读取数据后形成批量insert语句,再执行SQL将数据插入到数据库表,测试发现数据导入太慢,一直卡住,分析发现频繁读写数据库对数据库压力较大,极不稳定。后来改为批量形成SQL Loader导入语句进行导入后,速度快很多。引用《最大化SQL * Loader性能 》中的介绍:传统的路径加载器实质上是通过使用标原创 2020-10-24 10:47:44 · 2111 阅读 · 0 评论 -
MySQL累计和分类(示例随记,仅供参考)
SELECT case when B.女人数 is null then A.女人数 when B.女人数 is not null then (A.女人数- B.女人数) end 贫困人口女性总数 , case when B.男人数 is null then A.男人数 when B.男人数 is not null then (A.男人数- B.男人数) end 贫困人口男性总数 , A.年份 from ( SELECT c.女总建档立卡人数, c.男总建档立卡人数,原创 2020-10-22 20:59:14 · 218 阅读 · 0 评论 -
使用SQLULDR2进行ORACLE数据库抽取时执行后无反应,也无日志
SQLULDR2 下载地址:http://360jq.jb51.net:81/201709/tools/sqluldr2_win_jb51.rar解压后有两个应用,我的是64位系统,应该使用 SQLULDR264.exe具体使用方法参照:https://www.jb51.net/database/577355.html#downintro2执行SQLULDR264未报错:但是执行后续命令导出后没有反应,也没有日志输出,参考使用SQLULDR2进行ORACLE数据库抽取时执行后无反应,也无原创 2020-10-07 21:11:14 · 2029 阅读 · 0 评论 -
dbms_sql笔记(具体函数和示例)
具体函数可以参照官网https://docs.oracle.com/cd/E11882_01/timesten.112/e21645/d_sql.htm#TTPLP71282或者博客园这篇DBMS_SQL使用示例参考https://blog.51cto.com/aaron521/2165969?source=dra调用dbms_sql需要执行五个步骤 1.打开一个游标 2.分析要执行的语句 3.绑定可能需要的任何输入变量 4.执行语句 5.关闭游标*/DECLARE CUR原创 2020-10-07 15:38:59 · 787 阅读 · 1 评论 -
ORA-06502: PL/SQL: 数字或值错误 : hex 到 raw 的转换错误
SQL> exec export_to_csv2('BLOBDIR');BEGIN export_to_csv2('BLOBDIR'); END;*第 1 行出现错误:ORA-06502: PL/SQL: 数字或值错误 : hex 到 raw 的转换错误ORA-06512: 在 "C##A.EXPORT_TO_CSV2", line 36ORA-06512: 在 line 1参考https://stackoverflow.com/questions/13471988/oracle原创 2020-10-07 13:12:05 · 1609 阅读 · 0 评论 -
ORA-29287: 最大行大小无效 ORA-06512: 在 “SYS.UTL_FILE“,
执行存储过程export_to_csv时报错:SQL> begin 2 export_to_csv('MYDIR'); 3 end; 4 /begin*第 1 行出现错误:ORA-29287: 最大行大小无效ORA-06512: 在 "SYS.UTL_FILE", line 41ORA-06512: 在 "SYS.UTL_FILE", line 478ORA-06512: 在 "C##A.EXPORT_TO_CSV", line 29ORA-06512: 在 lin原创 2020-10-05 15:08:44 · 924 阅读 · 0 评论 -
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效---解决方法
一、问题描述今天在用hibernate进行建表操作时第一次建表成功,但之后发现POJO类的映射文件有问题,就进行了几次修改,之间将建表的代码又运行了几次,结果就在控制台报出了“ORA-00054:资源正忙, 但指定以 NOWAIT 方式获取资源,或者超时失效”的错误,数据也插入不了,于是我就去oracle数据库的可视界面(sqldeveloper)想将之前建成的表手动删除,结果还是报“ORA-00054:资源正忙, 但指定以 NOWAIT 方式获取资源,或者超时失效”这个错误,之后才搞清楚原来是转载 2020-09-27 19:40:48 · 643 阅读 · 0 评论 -
Oracle表空间占用已满的问题
今天发现,原来设bai备的数据表空间只有5M,已经满du了,上网去找发现zhi要进行扩展空间。一、脚本修改方式dao:----查询表空间使用情况---使用DBA权限登陆SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.T原创 2020-09-26 12:34:40 · 1361 阅读 · 0 评论 -
ORACLE修改用户名(用户模式),只需两条命令
sys用户或dba权限用户登录1. 从Oracle用户信息表查找用户序列号select user#,name from user$ where name = '需要修改的用户名';2. 根据序列号直接修改用户信息表update user$ set name = '新用户名' where user# = 之前查的那个序列号;我的修改后就可以直接用新用户名和旧密码登录了,如果修改后无法登录:commit;尝试强制更新:alter system checkpoint;alter原创 2020-09-25 19:21:32 · 5016 阅读 · 1 评论 -
oracle 抛出异常的方式:通过pl/sql运行引擎、使用raise语句、调用raise_application_error存储过程
文章目录Oracle有三种方式可以抛出异常:1. 通过pl/sql运行引擎2. 使用raise语句3. 调用raise_application_error存储过程Oracle有三种方式可以抛出异常:1. 通过pl/sql运行引擎当数据库或pl/sql在运行时发生错误时,此时异常可以通过pl/sql运行时的引擎自动抛出异常。参考之前自己写的一篇《PL_SQL模块学习之十五、异常》示例:自定义一个number类型的变量test_number,当赋给该变量的值为非number类型时,自动抛出异常。S原创 2020-09-20 13:44:58 · 3462 阅读 · 0 评论 -
oracle练习:编写一个实现更改商品单价的存储过程
题目:有商品表(商品号、商品名、分类、单价),请编写一个实现更改商品单价的存储过程(存储过程名为PUPDATE),更改规则如下:“电脑”类商品降价10%,“电视”类商品降价6%,“冰箱”类商品降价3%,其他商品不降价。以商品的分类作为输入参数,假设“分类”为字符串类型,长度最多为6个字符。如果商品表中没有用户指定的分类,那么用输出参数返回字符串“指定的分类不存在”;如果用户指定的分类存在,那么用输出参数返回字符串“修改已成功”。答题步骤:1. 建表依据题意建立商品表 "PRODUCT":C原创 2020-09-18 23:19:03 · 1686 阅读 · 0 评论 -
MySQL - 生成列(generated column):在列定义中包含表达式
create 生成列官网原文:https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.htmlCREATE TABLE支持生成列的规范。根据列定义中包含的表达式计算生成的列的值。NDB从MySQL NDB Cluster 7.5.3开始,存储引擎 支持生成的列 。以下简单示例显示了一个表,该表存储sidea和sideb列中直角三角形的边的长度 ,并计算下斜边的长度 sidec(其他边的平方和的平方根):CREAT原创 2020-08-24 16:15:03 · 2906 阅读 · 0 评论 -
MySQL时间函数
1. 获取当前时间mysql> select now(),sleep(3),sysdate(),curdate(),curtime();+---------------------+----------+---------------------+------------+-----------+| now() | sleep(3) | sysdate() | curdate() | curtime() |+------------------原创 2020-08-24 15:22:36 · 143 阅读 · 0 评论 -
ORACLE随记(having/模糊查询/正则/格式转换/去除空格/dual表/查询结果格式化/round函数)
文章目录`having`模糊查询正则表达函数 `regexp_like`字段格式转换查询去除空格dual表对查询结果进行格式化ROUND函数having子句从中间结果集中对行进行筛选中间结果集使用select语句中from,where,group by子句创建having字句前不必有group by语句select * from a,b返回的结果是a*b的总行数;模糊查询“%...原创 2020-08-21 10:11:51 · 637 阅读 · 0 评论 -
ORA-12537:TNS连接已关闭(监听文件配置问题)
客户端连接Oracle报错:ORA-12537:TNS连接已关闭查看网络服务名是否能正常解析。[root@localhost oracle]# tnsping orclTNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 08-MAR-2020 07:12:15Copyright (c) 1997, 2014, Or...原创 2020-08-21 10:10:27 · 16577 阅读 · 0 评论 -
Oracle的dbms_metadata命令详解
文章目录检索元数据提交XML官网链接:点击????访问使用该DBMS_METADATA包来检索元数据,也可以提交XML:检索元数据如果要检索元数据,则可以指定:要检索的对象的种类。这可以是特定的对象类型(例如表,索引或过程),也可以是形成逻辑单元的对象类型的异构集合(例如数据库导出或架构导出)。可选的选择条件,例如所有者或名称。解析项目(分别解析和返回的返回对象的属性)。...原创 2020-08-21 10:09:44 · 3360 阅读 · 0 评论 -
MySQL体系结构+各存储引擎特点(简略介绍)
重点放开头,哈哈????体系结构MySQL server层连接层:通信协议(版本兼容性检查),线程处理(一条SQL请求一个线程),用户名密码认证三个部分SQL层:权限判断、查询缓存(query cache)、解析器(判断语法)、预处理(处理无法解析的语义)、查询优化器(优化SQL)、缓存和执行计划存储引擎层query cache5.6之前默认开启,5.6之后默认关闭缓存静态数据,...原创 2020-08-21 10:08:26 · 108 阅读 · 0 评论 -
Oracle 数据的导入导出(数据泵&EXPDP&IMPDP、python脚本&sqlldr)
文章目录数据泵导出导入EXPDP导出导出表导出方案中的对象导出表空间导出整个数据库导出对象中的数据条件导出IMPDP数据导入导入schema所有对象导入表空间所有对象导入全数据库数据泵导出导入EXPDP导出数据:将数据库对象的表、用户方案、表空间、空间数据导出到转储文件中。EXPDP是服务端工具,客户端无法使用。IMPDP导入工具:将转储文件中的元数据及其数据导入到Oracle数据中...原创 2020-08-21 10:07:27 · 836 阅读 · 0 评论 -
oracle数据表回收站
drop table enmotech purge;drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。1.通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_tab原创 2020-08-21 10:02:32 · 1631 阅读 · 0 评论 -
Oracle表分区(12.2 automatic 表自动分区)
查看分区数据:select * from test partition(p1)在Oracle Database 12.2 之前,如果使用列表分区,当插入的数据超过了分区列表值设定,则会抛出异常;而如果存在大量的列表值需要定义,则可能需要一一设置。在12.2引入的新特性中 - Auto-List Partitioning 可以针对新的列表值,进行自动的分区创建,从而减少了维护的复杂性。通过以下测试来简单验证一下这个特性的表征,如果是常规的列表分区,在分区缺失时会遇到ORA-14400错误:SQL&原创 2020-08-21 09:58:33 · 4888 阅读 · 1 评论 -
datagear单元格测试编译问题整理
如果执行单元格测试编译,需要修改如下1.因为我的MySQL版本为8.0,所以 jar包版本需对应修改。文件位置:datagear\pom.xml修改代码:<!--原代码--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.24</versi原创 2020-08-17 10:47:48 · 298 阅读 · 0 评论 -
datagear安装部署(自己碰到的部署和报错问题整理)
主要是一些我自己碰到的部署和报错问题整理原创 2020-08-13 15:09:52 · 2387 阅读 · 1 评论 -
PYTHON+SQL*LOADER 批量执行Excel文档入库
对于多个excel文档入库到Oracle同一个表,用python生成批量ctl文件并生成批量执行sqlldr代码原创 2020-08-10 23:28:01 · 533 阅读 · 0 评论 -
EXCEL文件导入Oracle(python脚本导入)
直接上代码# encoding=gbkimport cx_Oracleimport csvimport xlrdimport osimport reclass ImportOracle(object): def inoracle(self): pass def ConnOracle(self): conn = cx_Oracle.connect('user/password@orcl') cursor = conn.curso原创 2020-08-10 23:14:13 · 1298 阅读 · 0 评论 -
MySQL一列分多列 (用特殊符号分列,符号出现不限次数)
首先创建表CREATE TABLE `testtag` ( `postid` int(11) NOT NULL AUTO_INCREMENT, `likes` int(100) DEFAULT NULL, `replay` int(100) DEFAULT NULL, `share` int(100) DEFAULT NULL, `tagid` varchar(220) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`p原创 2020-08-01 22:41:45 · 1999 阅读 · 0 评论 -
ISAM、MyISAM、InnoDB、ACID详解
ISAM索引顺序存取方法(ISAM, Indexed Sequential Access Method)最初是IBM公司发展起来的一个文件系统,可以连续地(按照他们进入的顺序)或者任意地(根据索引)记录任何访问。每个索引定义了一次不同排列的记录。MyISAMMyISAM是默认存储引擎(Mysql5.1前)。它基于更老的ISAM代码,但有很多有用的扩展。(注意MySQL 5.1不支持ISAM)。每个MyISAM在磁盘上存储成三个文件,每一个文件的名字均以表的名字开始,扩展名指出文件类型。.f原创 2020-07-28 21:33:57 · 1897 阅读 · 0 评论 -
Oracle的SQL语句优化(满满干货,建议收藏!)
1. SQL语句执行步骤语法分析> 语义分析> 视图转换 >表达式转换> 选择优化器 >选择连接方式 >选择连接顺序 >选择数据的搜索路径 >运行“执行计划”2. 选用适合的Oracle优化器RULE(基于规则)、 COST(基于成本) 、CHOOSE(选择性)3. 访问Table的方式全表扫描全表扫描就是顺序地访问表中每条记录,ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描。通过ROWID访转载 2020-07-26 23:52:49 · 4797 阅读 · 0 评论 -
什么是数据库连接池?为什么使用数据库连接池?数据库连接池工作原理
我们安装完Yarn后,可以在浏览器中通过http://ip:8088来访问Yarn的WEB UI,如下图:原创 2020-07-23 17:51:04 · 15961 阅读 · 0 评论