我有一个测试数据库。每天晚上,脚本都会删除并重新创建一些用于我们的自动化测试运行的可插拔数据库。最近,我开始在 create pluggable database 命令上收到“ORA-00059:超出最大文件数”错误。我一定遗漏了一些东西,因为据我所知,我还没有达到最大值(这个脚本在一个月前就开始工作了)。
SQL> select value from v$parameter where name = 'db_files';
VALUE
-----------------------------------------------------------
200
SQL> select count(*) from v$datafile;
COUNT(*)
----------
24
SQL> create pluggable database testdb FROM DB_SEED
2 FILE_NAME_CONVERT = ('/home/ora12c1/app/ora12c1/oradata/ora12c1/testdb_seed/', '/home/ora12c1/app/ora12c1/oradata/ora12c1/testdb/')
3 PATH_PREFIX = '/home/ora12c1/app/ora12c1/oradata/ora12c1/testdb';
create pluggable database testdb FROM DB_SEED
*
ERROR at line 1:
ORA-00059: maximum number of DB_FILES exceeded
Run Code Online (Sandbox Code Playgroud)
看起来以下解决了问题:Bug 18522516 12.1.0.1.4(2014 年 7 月)数据库补丁集更新 (PSU)
但是,请注意,在创建新的可插拔数据库之前,我必须重新启动数据库。因为,我执行了我在文档中看到的所有步骤:
使用 opatch apply 应用补丁启动/打开所有 pdbs 运行 datapatch -verbose
然后我不得不退回数据库来解决我的问题。
我有一个具有以下规格的专用数据库服务器”
我们目前正在做超线程,所以我们有 24 个逻辑核心。目前在 2k-4k 事务/秒之间运行。
我已经设置了以下内容:
innodb_thread_concurrency = 48innodb_read_io_threads = 24innodb_write_io_threads = 24 这是严格的 OLTP 负载(70% 读取)。查询速度相对较快(毫秒)。查询缓存已开启但未使用过多。临时磁盘表不经常创建。InnoDB 缓冲池设置为 48GB,几乎涵盖了整个数据集(60GB 数据+索引)。
如何更好地调整 CPU 线程以及 MySQL 如何使用这些线程?让我知道是否有人对innodb_thread_concurrency.
我将不胜感激任何建议。
更新
从innodb_thread_concurrency = 48到更新后:
innodb_thread_concurrency = 0在高峰时间(4-5k 事务/秒)的生产系统上查看行为,这是我观察到的:
我在双引导机器上安装了 PostgreSQL 9.4(在 Win 7 和 Ubuntu 14.10 上)。这两个系统共享一个驱动器(NTFS 格式),其中包含一个在 Windows 下创建的 PSQL 数据库目录。显然,PSQL 安装是特定于系统的,而且它们也恰好位于不同的分区上。该驱动器在 Linux 下自动挂载,并授予完全读/写/执行权限。
我想知道是否可以在两个系统之间共享结构和数据,而无需在每次加载新操作系统时复制和/或复制所有内容。实际上,我希望所有数据在 Windows 中创建时都可用于 Ubuntu,反之亦然。
这是可能的,如果是这样,假设所有数据最初是在 Windows 下生成的,如何从 Linux 设置它?
编辑:我尝试运行:
sudo pg_dropcluster --stop 9.4 main
Run Code Online (Sandbox Code Playgroud)
其次是
sudo pg_createcluster -d /db_from_windows_path 9.4 main
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但是当再次启动服务器时,我得到:
sudo /etc/init.d/postgresql start
* Starting PostgreSQL 9.4 database server
* Error: could not exec /usr/lib/postgresql/9.4/bin/pg_ctl /usr/lib/postgresql/9.4/bin/pg_ctl start -D /db_from_windows_path -s -o -c config_file="/etc/postgresql/9.4/main/postgresql.conf" :
[fail]
Run Code Online (Sandbox Code Playgroud)
它看起来非常神秘,特别是因为它/var/log/postgresql/postgresql-9.4-main.log是完全空的,/var/log/postgresql/目录的其余部分也是如此
编辑 2:经过一番观察,我注意到 chown 没有被占用,因为 NTFS 系统显然只能在安装时设置。在修复 /etc/fstab 以将所有权授予 postgres 后, …
我们使用这些版本:
# rpm -qa | egrep '(galera|maria)'
mariadb-libs-5.5.41-2.el7_0.x86_64
mariadb-galera-common-5.5.40-6.el7ost.x86_64
mariadb-galera-server-5.5.40-6.el7ost.x86_64
mariadb-5.5.41-2.el7_0.x86_64
galera-25.3.5-6.el7ost.x86_64
Run Code Online (Sandbox Code Playgroud)
那是我们的grastate.dat
# cat /var/lib/mysql/data/grastate.dat
# GALERA saved state
version: 2.1
uuid: e7ead849-f2a3-11e4-bfda-7f651f709ee3
seqno: -1
cert_index:
Run Code Online (Sandbox Code Playgroud)
在seqno: -1 外观腥。在其他集群上有一个数字。我不知道为什么。根据文档,这似乎“崩溃了”。-1 是在停电之后。但是这个集群是健康的。
修改时间很早
# stat /var/lib/mysql/data/grastate.dat
File: â/var/lib/mysql/data/grastate.datâ
Size: 104 Blocks: 8 IO Block: 4096 regular file
Device: fd09h/64777d Inode: 108 Links: 1
Access: (0660/-rw-rw----) Uid: ( 1000/ mysql) Gid: ( 1000/ mysql)
Context: system_u:object_r:mysqld_db_t:s0
Access: 2015-07-29 14:51:25.170699518 +0200
Modify: 2015-06-02 11:50:21.564360655 +0200
Change: 2015-06-02 11:50:21.564360655 +0200
Birth: -
Run Code Online (Sandbox Code Playgroud)
来自日志(没有错误,只有信息和警告): …
我想在 Ubuntu 14.04 工作站中安装 PostgreSQL 9.x 版本,我正在寻找有关如何设置它的建议,以便
获得良好的读写(50/50 平衡)性能
保持整体常规系统使用的体面性能。
我的想法是在 SSD 驱动器中有两个主要分区:
[A] 带有操作系统推荐/默认设置的根系统(“/”)的 ext4。
[B] 一个用于 postgres 数据库文件(“/var/lib/pgsql”)的 ext4,具有大块大小(例如 1MB)和大预读大小(多少?)和适当的标志(哪个?)。
我不知道将 postgres db 文件与一般系统分开是否是一个好主意。在这种情况下,关于 [B] 块大小、预读大小、文件系统标志的任何建议?
此外任何有用的提示?
Error creating SQL Model Connection connection to TSMDB1. (Error: [jcc][t4][2010][11246][3.68.61] Connection authorization failure occurred. Reason: Local security service non-retryable error. ERRORCODE=-4214, SQLSTATE=28000)
[jcc][t4][2010][11246][3.68.61] Connection authorization failure occurred. Reason: Local security service non-retryable error. ERRORCODE=-4214, SQLSTATE=28000
Error creating JDBC Connection connection to TSMDB1. (Error: [jcc][t4][2010][11246][3.68.61] Connection authorization failure occurred. Reason: Local security service non-retryable error. ERRORCODE=-4214, SQLSTATE=28000)
[jcc][t4][2010][11246][3.68.61] Connection authorization failure occurred. Reason: Local security service non-retryable error. ERRORCODE=-4214, SQLSTATE=28000
Run Code Online (Sandbox Code Playgroud)
一直试图弄清楚为什么我无法远程连接到 DB2 服务器。
我需要以可以导入 Microsoft SQL Server 数据库的格式提供数据;但是,我没有 Windows 或无法访问 SQL Server 实例。
数据目前位于多个 CSV 电子表格中。我查看了BULK INSERT但发现他们对 CSV 的支持非常有限,例如无法识别双引号(文档:指定字段和行终止符)。我读过不支持边缘情况,例如字段恰好包含引号(因此需要转义)。
是否有更可靠的中间格式可以从 Linux/OSX 生成?例如 MySQL 转储、Excel、Sqlite、XML 等?
我还需要这个导入过程来创建表而不需要编码。导入的人是非技术人员。这将是一个一次性的过程。
我将无法测试导入,因为我无法直接访问 SQL Server 数据库,因此我正在寻找更可靠的方法。例如 MySQL 转储、XLS、XML 等。
我在 RHEL7 VM 上安装了 SQL Server
msodbcsql-13.1.1.0-1.x86_64
mssql-server-14.0.100.187-1.x86_64
mssql-tools-14.0.2.0-1.x86_64
# ls -al /opt/
total 4
drwxr-xr-x. 5 root root 52 Jan 13 08:31 .
drwxr-xr-x. 17 root root 4096 Jan 13 07:55 ..
drwxr-xr-x. 3 root root 22 Jan 13 08:31 microsoft
drwxr-xr-x. 4 root root 26 Jan 13 08:14 mssql
drwxr-xr-x. 4 root root 28 Jan 13 08:31 mssql-tools
Run Code Online (Sandbox Code Playgroud)
systemctl 表示 SQL 服务器已启动并正在运行 / 绿色
# systemctl status mssql-server
mssql-server.service - Microsoft(R) SQL Server(R) Database Engine
Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; …Run Code Online (Sandbox Code Playgroud) 运行 SQL Server 2017,使用交互式REPL 客户端sqlcmd如何获得查询执行的时间?
你可以在这里sp_BlitzErik在他的回答中展示这一点,
SQL Server Execution Times:
CPU time = 1859 ms, elapsed time = 321 ms.
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 Linux Ubuntu 16.04 计算机连接到 SQL Server Express 服务器。我为 linux 机器安装了所有 SQL 命令行实用程序,并按照 Linux 文档上的 Microsoft SQL Server 的说明进行操作。
当我跑
sqlcmd -S ip/SQLEXPRESS -U SA -P 1234
Run Code Online (Sandbox Code Playgroud)
该命令总是返回以下错误:
适用于 SQL Server 的 Microsoft ODBC 驱动程序 13:登录超时已过期。
适用于 SQL Server 的 Microsoft ODBC 驱动程序 13:TCP 提供程序:错误代码 0x2AF9
我能够从 Windows 10 计算机运行相同的命令,并且没有任何缺陷。
linux 计算机可以与服务器机器和 SQL Server 1433 端口进行通信。我使用 linux nc 命令 (netcat) 对此进行了测试。
Linux nc 命令结果:
nc -z -v -w5 192.168.0.1 1433
Run Code Online (Sandbox Code Playgroud)
连接到 192.168.0.1 1433 端口 [tcp/ms-sql-s] 成功!
有什么建议或缺少什么吗?
我曾尝试更改端口、参数顺序等……但 Linux 版本 …
linux ×10
sql-server ×3
performance ×2
postgresql ×2
sqlcmd ×2
windows ×2
benchmark ×1
client ×1
clustering ×1
connectivity ×1
csv ×1
db2 ×1
db2-10.5 ×1
galera ×1
import ×1
innodb ×1
mac-os-x ×1
mariadb ×1
mysql ×1
mysql-5.5 ×1
oracle ×1
oracle-12c ×1
remote ×1
timeout ×1
ubuntu ×1
unixodbc ×1