AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / 问题

All perguntas(dba)

Martin Hope
Nyxynyx
Asked: 2013-04-19 03:12:15 +0800 CST

PostgreSQL: Não é possível alterar o diretório para /root

  • 20

Estou tentando copiar uma tabela planet_osm_polygonde um banco de dados osmpara outro test. Eu su postgrese executei o pg_dump.

Problema: No entanto, estou recebendo o erro could not change directory to "/root"e o Password:prompt apareceu duas vezes! Existe uma maneira de executar pg_dumpquando logado como root?

root@lalaland:~# su postgres
postgres@lalaland:/root$ pg_dump -h localhost "osm" --table "public.planet_osm_polygon" | 
    psql -h localhost "test" --table "staging.planet_osm_polygon"
could not change directory to "/root"
could not change directory to "/root"
Password: Password:

ATUALIZAR

Problema nº 2: Parece que a tabela foi copiada para o publicesquema, embora eu tenha passado o sinalizador --table="staging.planet_osm_polygon". Por que não é copiado para o esquema staging?

postgresql postgresql-9.1
  • 2 respostas
  • 62430 Views
Martin Hope
DanP
Asked: 2013-03-21 10:52:39 +0800 CST

Configuração de unidade ideal para SQL Server 2008R2

  • 20

Eu tenho um servidor de banco de dados bastante ocupado executando o SQL Server 2008 R2 que possui a seguinte configuração:

  • SATA RAID 1 (2 unidades) - SO / Programas
  • SAS RAID 10 (4 unidades) - Arquivos de banco de dados Sql (dados e logs)
  • SAS RAID 1 (2 unidades) - TempDB (dados e logs)

Presumindo que não posso adicionar unidades adicionais a este servidor, fiz o melhor uso da configuração que tenho disponível? Ou devo considerar outro esquema aqui onde os logs são isolados dos arquivos de dados, por exemplo?

Atualizar:

Para aqueles que solicitaram mais detalhes de hardware:

  • As unidades SATA (usadas para a partição OS/Programa) são: WD 7200 RPM 3 Gb/s 3,5 polegadas SATA
  • As unidades SAS usadas nas outras matrizes são: Seagate 15K RPM 6 Gb/s SAS de 3,5 polegadas
  • O controlador RAID usado é um: LSI 9260-8i SAS/SATA 6 Gb 8 portas

Atualização 2:

Com base no feedback que recebi, parece que tenho as seguintes opções viáveis ​​para escolher - concederei a recompensa a alguém que possa me dizer qual é provavelmente o melhor no ambiente que descrevi:

  1. Deixe tudo como está - provavelmente não farei muito melhor
  2. Mova minhas 2 unidades SAS RAID 1 para minha matriz RAID 10 existente para que ela seja composta por 6 discos no total
  3. Mover meus arquivos de log para o SAS RAID 1 e/ou realocar o TempDB (dados ou logs) de volta para o RAID 10
sql-server hardware
  • 5 respostas
  • 21178 Views
Martin Hope
tasmaniski
Asked: 2013-03-09 03:28:56 +0800 CST

Exporte a tabela remota do Postgres para o arquivo CSV na máquina local

  • 20

Tenho acesso somente leitura a um banco de dados em um servidor remoto. Assim, posso executar:

COPY products TO '/tmp/products.csv' DELIMITER ',';

Mas nesse servidor eu não tenho permissão para criar/salvar um arquivo, então preciso fazer isso na minha máquina local.

Quando me conecto ao banco de dados remoto, como posso executar um comando para salvar o arquivo na minha máquina local em vez do servidor remoto?

Ou, como posso executar um comando do Linux para conectar ao banco de dados remoto, executar uma consulta e salvar a saída como um arquivo em minha máquina local?

postgresql export
  • 2 respostas
  • 49632 Views
Martin Hope
Martin Smith
Asked: 2013-01-30 09:18:23 +0800 CST

Qual é o resultado correto para esta consulta?

  • 20

Me deparei com esse quebra-cabeça nos comentários aqui

CREATE TABLE r (b INT);

SELECT 1 FROM r HAVING 1=1;

SQL Server e PostgreSQL retornam 1 linha.

MySQL e Oracle retornam zero linhas.

Qual é correto? Ou ambos são igualmente válidos?

sql-standard aggregate
  • 3 respostas
  • 894 Views
Martin Hope
Rachel
Asked: 2012-12-19 10:58:47 +0800 CST

Como posso fazer backup de um grande banco de dados SQL Server sem afetar o desempenho?

  • 20

Recebemos relatórios de consultas sendo executadas lentamente ou expirando no início da manhã, e o único trabalho que vejo em execução que acho que poderia afetar isso é nosso trabalho de backup de banco de dados.

O banco de dados em si tem cerca de 300 GB e o trabalho de backup começa às 4h30 e termina pouco depois das 7h. A sintaxe atual do nosso trabalho de backup é:

BACKUP DATABASE [DatabaseName]
TO DISK = N'E:\Database Backups\DatabaseName.Bak'
WITH INIT, NOUNLOAD, NAME = N'DatabaseName.Bak',
NOSKIP, STATS = 10, NOFORMAT

E:\é uma partição no servidor que contém os bancos de dados e os backups do banco de dados.

Também deve ser notado que este é um servidor virtual, não um servidor autônomo dedicado. Começamos a receber reclamações sobre lentidão durante o processo de backup logo após mudarmos para um servidor virtual, então acho que pode estar relacionado.

Existe uma maneira de executar esse trabalho de backup para que ele não afete o desempenho da consulta durante a execução?

Estamos usando o SQL Server 2005

sql-server sql-server-2005
  • 4 respostas
  • 42334 Views
Martin Hope
MacGyver
Asked: 2012-11-06 10:04:22 +0800 CST

Baixe o SQL Server Profiler para SQL Server Management Studio

  • 20

Como posso criar o perfil de um banco de dados SQL Server 2008 para ver o código que está sendo executado em um banco de dados específico? Lembro-me de usar o criador de perfil do SQL Server, mas não o vejo no SQL Server Management Studio depois de baixar o SQL Server 2008 R2 Express. Onde posso baixar essa ferramenta e instalá-la? Preciso da versão completa do SQL Server 2008 para ver essa opção?

sql-server sql-server-2008-r2
  • 5 respostas
  • 153890 Views
Martin Hope
孔夫子
Asked: 2012-10-21 12:36:26 +0800 CST

Por que DELETE deixa um efeito prolongado no desempenho?

  • 20

No final, há um script de teste para comparar o desempenho entre uma variável @table e uma tabela #temp. Acho que configurei corretamente - os tempos de desempenho são retirados dos comandos DELETE/TRUNCATE . Os resultados que estou obtendo são os seguintes (tempos em milissegundos).

@Table Variable  #Temp (delete)  #Temp (truncate)
---------------  --------------  ----------------
5723             5180            5506
15636            14746           7800
14506            14300           5583
14030            15460           5386
16706            16186           5360

Só para ter certeza de que estou são, isso mostra que CURRENT_TIMESTAMP (também conhecido como GetDate()) é obtido no momento da instrução, não do lote, portanto, não deve haver interação entre TRUNCATE/DELETE com a SET @StartTime = CURRENT_TIMESTAMPinstrução.

select current_timestamp
waitfor delay '00:00:04'
select current_timestamp

-----------------------
2012-10-21 11:29:20.290

-----------------------
2012-10-21 11:29:24.290

É bastante consistente no salto entre a primeira execução e as subsequentes quando DELETE é usado para limpar a tabela. O que estou perdendo em minha compreensão de DELETE ? Eu repeti isso muitas vezes, troquei a ordem, dimensionei o tempdb para não exigir crescimento, etc.

CREATE TABLE #values (
  id int identity primary key, -- will be clustered
  name varchar(100) null,
  number int null,
  type char(3) not null,
  low int null,
  high int null,
  status smallint not null
);
GO
SET NOCOUNT ON;

DECLARE @values TABLE (
  id int identity primary key clustered,
  name varchar(100) null,
  number int null,
  type char(3) not null,
  low int null,
  high int null,
  status smallint not null
);
DECLARE  @ExecutionTime  TABLE(      Duration bigINT    ) 
DECLARE  @StartTime DATETIME,  @i INT = 1; 
WHILE (@i <= 5) 
  BEGIN 
    DELETE @values;
    DBCC freeproccache With NO_InfoMSGS;
    DBCC DROPCLEANBUFFERS With NO_InfoMSGS;
    SET @StartTime = CURRENT_TIMESTAMP -- alternate getdate() 
    /****************** measured process ***********************/ 

    INSERT @values SELECT a.* FROM master..spt_values a join master..spt_values b on b.type='P' and b.number < 1000;

    /**************** end measured process *********************/ 
    INSERT @ExecutionTime 
    SELECT DurationInMilliseconds = datediff(ms,@StartTime,CURRENT_TIMESTAMP) 
    SET @i +=  1 
  END -- WHILE 

SELECT DurationInMilliseconds = Duration FROM   @ExecutionTime 
GO 

-- Temporary table
DECLARE  @ExecutionTime  TABLE(      Duration bigINT    ) 
DECLARE  @StartTime DATETIME,  @i INT = 1; 
WHILE (@i <= 5) 
  BEGIN 
    delete #values;
    -- TRUNCATE TABLE #values;
    DBCC freeproccache With NO_InfoMSGS;
    DBCC DROPCLEANBUFFERS With NO_InfoMSGS;
    SET @StartTime = CURRENT_TIMESTAMP -- alternate getdate() 
    /****************** measured process ***********************/ 

    INSERT #values SELECT a.* FROM master..spt_values a join master..spt_values b on b.type='P' and b.number < 1000;

    /**************** end measured process *********************/ 
    INSERT @ExecutionTime 
    SELECT DurationInMilliseconds = datediff(ms,@StartTime,CURRENT_TIMESTAMP) 
    SET @i +=  1 
  END -- WHILE 

SELECT DurationInMilliseconds = Duration FROM   @ExecutionTime 
GO

DROP TABLE  #values 
SET NOCOUNT OFF;
sql-server performance
  • 2 respostas
  • 4223 Views
Martin Hope
Martin Hennings
Asked: 2012-09-11 01:43:56 +0800 CST

Como obtenho o valor atual e o próximo maior em uma seleção?

  • 20

Eu tenho uma tabela InnoDB 'idtimes' (MySQL 5.0.22-log) com colunas

`id` int(11) NOT NULL,
`time` int(20) NOT NULL, [...]

com uma chave única composta

UNIQUE KEY `id_time` (`id`,`time`)

portanto, pode haver vários carimbos de data/hora por id e vários ids por carimbo de data/hora.

Estou tentando configurar uma consulta onde recebo todas as entradas mais o próximo tempo maior para cada entrada, se existir, portanto, deve retornar, por exemplo:

+-----+------------+------------+
| id  | time       | nexttime   |
+-----+------------+------------+
| 155 | 1300000000 | 1311111111 |
| 155 | 1311111111 | 1322222222 |
| 155 | 1322222222 |       NULL |
| 156 | 1312345678 | 1318765432 |
| 156 | 1318765432 |       NULL |
+-----+------------+------------+

No momento estou até agora:

SELECT l.id, l.time, r.time FROM 
    idtimes AS l LEFT JOIN idtimes AS r ON l.id = r.id
    WHERE l.time < r.time ORDER BY l.id ASC, l.time ASC;

mas é claro que isso retorna todas as linhas com r.time > l.time e não apenas a primeira ...

Acho que vou precisar de uma subseleção como

SELECT outer.id, outer.time, 
    (SELECT time FROM idtimes WHERE id = outer.id AND time > outer.time 
        ORDER BY time ASC LIMIT 1)
    FROM idtimes AS outer ORDER BY outer.id ASC, outer.time ASC;

mas não sei como me referir à hora atual (sei que o SQL acima não é válido).

Como faço isso com uma única consulta (e prefiro não usar @variables que dependem de percorrer a tabela uma linha por vez e lembrar o último valor)?

mysql innodb
  • 4 respostas
  • 78538 Views
Martin Hope
Mat Fergusson
Asked: 2012-09-07 17:33:31 +0800 CST

Permissões NTFS quebradas para MSSQL$SQLEXPRESS

  • 20

Eu tenho "protegido" nosso servidor de banco de dados. Para fazer isso eu removi algumas permissões das pastas que a instalação do SQL Express criou.

D:\SQL
D:\SQL\Data
D:\SQL\Backup
etc..

Mantive as permissões na pasta Data como estavam, mas removi tudo o que achava que não precisava dos outros.

Agora não consigo fazer backup de bancos de dados. Se eu tentar selecionar o local de backup, a caixa de diálogo não mostra nada na pasta d:\SQL e se eu colocar o caminho em mim, ele me diz o seguinte: -

Não é possível acessar o caminho ou arquivo especificado no servidor. Verifique se você tem os privilégios de segurança necessários e se o caminho e o arquivo existem.

...

Parece problema de permissão de pasta. Outro servidor configurado de maneira semelhante tem um monte de permissões "permitir" para uma conta chamada " MSSQL$SQLEXPRESS", (que eu sei que deletei), mas não posso adicionar novamente essas permissões porque não existe tal grupo , usuário ou construído -no princípio de segurança no servidor.

Como adiciono permissões para esta MSSQL$SQLEXPRESSconta?

sql-server permissions
  • 2 respostas
  • 26210 Views
Martin Hope
Bryan Hunt
Asked: 2012-07-12 02:27:45 +0800 CST

Como posso inserir carinhas sorridentes no MySQL ( ? )

  • 20

Estou no MySQL 5.5.21 e tentando inserir o caractere de rosto sorridente '\xF0\x9F\x98\x8A'. Mas para a vida de mim, eu não consigo descobrir como fazê-lo.

De acordo com vários fóruns que tenho lido, é possível. Mas sempre que eu tento, os dados ficam truncados.

mysql> INSERT INTO hour  (  `title`,   `content`,   `guid` ,  `published` , `lang` ,  `type` ,  
       `indegree` ,  `lon` ,  `lat` ,  `state` ,  `country` , `hour`  )   
       VALUES ( "title" ,  "content ?  content" ,  "guid" ,  1,  1,   
                     "WEBLOG",  1,  1,  1,  "state" ,  "country" ,  1 );
Query OK, 1 row affected, 2 warnings (0.00 sec)

mysql> show warnings;
+---------+------+-------------------------------------------------------------------------------+
| Level   | Code | Message                                                                       |
+---------+------+-------------------------------------------------------------------------------+
| Warning | 1366 | Incorrect string value: '\xF0\x9F\x98\x8A  ...' for column 'content' at row 1 |
| Warning | 1265 | Data truncated for column 'published' at row 1                                |
+---------+------+-------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> select LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
|           687302 |
+------------------+
1 row in set (0.00 sec)

mysql> select * from hour where id = 687302;
+--------+-------+----------+------+---------------------+
| id     | title | content  | guid | published           |
+--------+-------+----------+------+---------------------+
| 687302 | title | content  | guid | 0000-00-00 00:00:00 |
+--------+-------+----------+------+---------------------+
1 row in set (0.00 sec)

Mas minha definição de tabela é a seguinte.

CREATE TABLE `hour` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) CHARACTER SET utf8 NOT NULL,
  `content` text CHARACTER SET utf8 NOT NULL,
  `guid` varchar(255) CHARACTER SET utf8 NOT NULL,
  `published` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `lang` tinyint(3) unsigned NOT NULL,
  `type` enum('WEBLOG','MICROBLOG') CHARACTER SET utf8 DEFAULT NULL,
  `indegree` int(4) unsigned NOT NULL,
  `lon` float DEFAULT NULL,
  `lat` float DEFAULT NULL,
  `state` varchar(50) CHARACTER SET utf8 DEFAULT '',
  `country` varchar(50) CHARACTER SET utf8 DEFAULT '',
  `hour` int(2) DEFAULT NULL,
  `gender` enum('MALE','FEMALE') CHARACTER SET utf8 DEFAULT NULL,
  `time_zone` varchar(45) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MEMORY AUTO_INCREMENT=687560 DEFAULT CHARSET=utf8mb4 KEY_BLOCK_SIZE=288 

Pode-se ver que estou usando CHARSET=utf8mb4. Certamente isso corrige problemas em torno do uso de caracteres de vários bytes?

Ok, então eu não percebi:

  `content` text CHARACTER SET utf8 NOT NULL,

Eu corrigi isso agora, mas ainda obtenho resultados funky.

CREATE TABLE `hourtmp` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) CHARACTER SET utf8 NOT NULL,
  `content` text NOT NULL,
  `guid` varchar(255) CHARACTER SET utf8 NOT NULL,
  `published` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `lang` tinyint(3) unsigned NOT NULL,
  `type` enum('WEBLOG','MICROBLOG') CHARACTER SET utf8 DEFAULT NULL,
  `indegree` int(4) unsigned NOT NULL,
  `lon` float DEFAULT NULL,
  `lat` float DEFAULT NULL,
  `state` varchar(50) CHARACTER SET utf8 DEFAULT '',
  `country` varchar(50) CHARACTER SET utf8 DEFAULT '',
  `hour` int(2) DEFAULT NULL,
  `gender` enum('MALE','FEMALE') CHARACTER SET utf8 DEFAULT NULL,
  `time_zone` varchar(45) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MEMORY AUTO_INCREMENT=687563 DEFAULT CHARSET=utf8mb4 KEY_BLOCK_SIZE=288 |

 mysql> INSERT INTO hourtmp  (  `title`,   `content`,   `guid` ,  `published` , `lang` ,  `type` ,  `indegree` ,  
 `lon` ,  `lat` ,  `state` ,  `country` , `hour`  )   VALUES ( "title" ,  "content ?  content" ,  
 "guid" ,  1,  1,   "WEBLOG",  1,  1,  1,  "state" ,  "country" ,  1 );
 Query OK, 1 row affected, 2 warnings (0.00 sec)

 mysql> show warnings;

 | Level   | Code | Message                                                                       |

 | Warning | 1366 | Incorrect string value: '\xF0\x9F\x98\x8A  ...' for column 'content' at row 1 |
 | Warning | 1265 | Data truncated for column 'published' at row 1                                |

 2 rows in set (0.00 sec)

 mysql> select * from hourtmp;
 +--------+-------+-----------------------+
 | id     | title | content               |
 +--------+-------+-----------------------+
 | 687560 | title | content ????  content |
 | 687561 | title | content ????  content |
 +--------+-------+-----------------------+
mysql character-set
  • 2 respostas
  • 52751 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve