我有一个 400GB 的内存Postgres 9.3.4 DB在运行Fedora20,每个表都有一些索引。我已将共享缓冲区提高到 4GB(系统有 16GB 可用),在内核中设置 shm 并将 设为effective_cache_size12GB。work_mem是 60MB
然后我每秒对数据库运行数百个查询很长一段时间。我的整个系统(带操作系统)仅使用 3GB RAM 并且没有交换。
Postgres并没有真正使用它可能使用的 RAM,我宁愿最大化我的 RAM 并获得查询/索引性能(如果可能)。
我是否缺少一些配置方面的知识?
在Linux上,SQL Server在哪里存储“SQL Server密码策略”和SA用户的密码?我明白了,“密码”不安全。
错误:无法设置系统管理员密码:密码验证失败。该密码不符合 SQL Server 密码策略要求,因为它太短。密码必须至少为 8 个字符..
进而,
错误:无法设置系统管理员密码:密码验证失败。该密码不符合 SQL Server 密码策略要求,因为它不够复杂。密码长度必须至少为 8 个字符,并包含以下四组中的三组字符:大写字母、小写字母、基数 10 的数字和符号。
我猜该策略实际上已编译到数据库中?密码会存储在一个不起眼的位置吗?
我正在尝试运行基本的 T-SQL 脚本
DECLARE @temptable TABLE(
abilityTypeId BIGINT NOT NULL,
companyId BIGINT NOT NULL
);
INSERT INTO @temptable(abilityTypeId, companyId)
VALUES (1, 2);
SELECT * FROM @temptable;
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
SQL 错误 [1087] [S0002]:必须声明表变量“@temptable”。必须声明表变量“@temptable”。
MERGE INTO也不工作。是否可以在 Linux 上实现此功能,还是必须使用 Visual Studio 才能实现此功能?
我正在尝试使用以下脚本在我的 linux 机器上安装和启动 db2:
#!/usr/bin/env bash
MKDIR=/bin/mkdir
RM=/bin/rm
TAR=/bin/tar
DB2_SERVER_PROGRAM_PATH=/home/alok/Documents/Installers
DB2_SERVER_PROGRAM=v10.5_linuxx64_expc.tar.gz
echo "changing to $DB_SERVER_PROGRAM_PATH"
cd ${DB2_SERVER_PROGRAM_PATH}
echo "removing expc"
${RM} -rf expc
echo "untarring ${DB2_SERVER_PROGRAM}"
${TAR} zxf ${DB2_SERVER_PROGRAM}
echo "changing to expc"
cd expc
echo "Installing db2 as root"
sudo ./db2_install
echo "Adding user group db2grp1 as root"
sudo groupadd db2grp1
echo "Adding user group dasadm1 as root"
sudo groupadd dasadm1
echo "Adding user group db2fgrp1 as root"
sudo groupadd db2fgrp1
echo "Adding user db2inst1. Please provide password for …Run Code Online (Sandbox Code Playgroud) 我试图在 Linux 机器上的 Oracle DB 11g 上运行以下 Pl/SQL 语句,但收到错误“缺少关键字”。如果我错过了什么,请告诉我。
BEGIN
FOR X in (select * from all_tables where owner in ('owner1', 'owner2')) LOOP
EXECUTE IMMEDIATE 'GRANT SELECT, INSERT, UPDATE, DELETE ON ' ||X.owner||'.'||X.table_name|| 'to myuser';
END LOOP;
end;
/
Error starting at line : 1 in command -
BEGIN
FOR X in (select * from all_tables where owner in ('TESTDTA', 'TESTCTL')) LOOP
EXECUTE IMMEDIATE 'GRANT SELECT, INSERT, UPDATE, DELETE ON ' ||X.owner||'.'||X.table_name|| 'to ARCTOOLS212';
END LOOP;
end;
Run Code Online (Sandbox Code Playgroud)
错误报告
ORA-00905:缺少关键字 ORA-06512:在第 …
我计划将 SQL Server 2008 标准版迁移到 Linux 服务器实例。我对这个实例有两个问题:
我们有这么多来自前端用户的用户ID锁。我们需要向用户提供一个 shell 脚本,他们可以在操作系统级别运行该脚本,并在 DBA 不存在时自己解锁 ID。
脚本运行时需要解密 sys 密码,并在脚本成功执行后加密。(理想情况下他们不应该看到密码)
我们有多个数据库,所以参数只能以下面的方式传递。
示例语法: ./tmp/unlock_user.sh user instance_name
这要求太多了。我知道。如果有人可以提供帮助,那就太好了。
操作系统:通用 Linux
数据库:11gR2
我在灾难发生前所做的是:
vi /etc/my.cfg
Run Code Online (Sandbox Code Playgroud)
我加了
innodb_buffer_pool_size=4G
innodb_buffer_pool_instance=2
innodb_read_io_threads=12
innodb_write_io_threads=12
innodb_io_capacity=300
innodb_log_file_size=128M
Run Code Online (Sandbox Code Playgroud)
在那之后
$ service mysql stop
$ cd /var/lib/mysql
$ rm -f ibdata1 ib_logfile*
$ service mysql start
Run Code Online (Sandbox Code Playgroud)
我收到ERROR 1146 (42S02): Table 'db.table' doesn't exist每张桌子。
我的站点已关闭,数据库备份无济于事。
我尝试在 Ubuntu 16 服务器上使用sqlcmd工具恢复 SQL Server 2017 Express 数据库。
我的 SQL 命令是:
RESTORE DATABASE [xxxxx] FROM DISK = N'/home/xxxxxx/DBBackups/xxxx.bak' WITH NORECOVERY, MOVE 'xxxx_Data' TO '/var/opt/mssql/data/xxxxx.mdf', MOVE 'xxxx_Log' TO '/var/opt/mssql/data/xxxx_log.ldf'
错误信息是:
BackupDiskFile::OpenMedia: 备份设备“/home/xxxxxx/DBBackups/xxxxxxxx.bak”无法打开。操作系统错误 5(访问被拒绝。)。
使用WITH MOVE在此描述选项后不能正常工作。
更新
这是另一篇文章,仍然拒绝访问错误。
使用它docker-compose.yml我创建了一个容器:
version: "3.9"
services:
database:
image: mcr.microsoft.com/mssql/server
user: root
restart: always
container_name: ContainerNameHere
volumes:
- /Organization/Databases:/var/opt/mssql/data
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=password_here
- MSSQL_PID=Express
ports:
- 1433:1433
logging:
driver: none
networks:
- NetworkNameHere
networks:
NetworkNameHere:
name: NetworkNameHere
driver: bridge
Run Code Online (Sandbox Code Playgroud)
它的用户数据库为零。它只是一个简单的空 SQL Server docker 容器,没有数据库,也没有数据。
但这是我的top命令的结果:
正如你所看到的,它完全摧毁了我的 VPS。
这太令人沮丧了,微软团队还没有回复我。
为什么 SQL Server 的 docker 容器会这样,我应该如何解决这个问题?
我有 10 GB 可用空间:
df -h /
已用文件系统大小 Avail Use% 安装在
/dev/sda1 20G 8.9G 10G 47% /
我的 SQL …
SQL Server 中有一个非常令人讨厌的功能QUOTED_IDENTIFIERS,我想了解更多。简而言之,将选项设置为ON,这不是 Linux 客户端的默认设置,一切正常。没有它,有些事情会神奇地失败。Microsoft 声称该选项是DEFAULT,然后他们在自己的默认客户端中默认更改它。随着SET QUOTED_IDENTIFIERS OFF;,这有效,
CREATE TABLE f (
a int,
b int,
g AS (CASE WHEN a>b THEN a ELSE b END),
l AS (CASE WHEN a>b THEN b ELSE a END),
UNIQUE(a,b)
);
Run Code Online (Sandbox Code Playgroud)
有了SET QUOTED_IDENTIFIERS OFF;,这并不能正常工作,
CREATE TABLE f (
a int,
b int,
g AS (CASE WHEN a>b THEN a ELSE b END),
l AS (CASE WHEN a>b THEN b ELSE a …Run Code Online (Sandbox Code Playgroud) linux ×11
sql-server ×5
oracle ×2
containers ×1
db2 ×1
dbeaver ×1
debian ×1
docker ×1
memory ×1
mysql ×1
postgresql ×1
restore ×1
startup ×1
t-sql ×1
unix ×1