Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4489 connectés 

 


Dernière réponse
Sujet : backup Base de données postgre linux
Dark_Schneider :sweat:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Dark_Schneider :sweat:
tourist77 oui je l'ai!!!
arghbis et t'aurais pas un zoli fichier /scripts_backup/montage_backup/ajaccio/bdd_ajaccio.sql.tar par hasard???
tourist77 j'ai tapé ce que tu as mis au dessus:
 
bash: /root/.bashrc: Permission non accordée
Dark_Schneider

tourist77 a écrit :

je ne comprend pas tout dans la doc, je suis pas tres fort en anglais!!!!


 
alors améliore ton anglais, en informatique c'est INDISPENSABLE !!! ( notamment sous linux )

Dark_Schneider là cel m'énerve.
 
psql : permet de se connecter à une base et éventuellement de lancer des commandes
 
pg_dump : permet de sauvegarder une base.
 
je t'ai parlé de psql juste pour ke tu vérifies ke tu te connectais bien à la base. Pour sauvegarder une base tru n'en a pas besoin. utilise pg_dump
 

Code :
  1. su -c "pg_dump -o -b --format=t -U ajaccio  --file=/scripts_backup/montage_backup/ajaccio/bdd_ajaccio.sql.tar ajaccio" ajaccio


 
lis la page de manuel de pg_dump pour une explication des options.
 
man pg_dump
 
 

tourist77 je ne comprend pas tout dans la doc, je suis pas tres fort en anglais!!!!
tourist77 je tape ca?  :
 
su  -c "psql -U ajaccio -d ajaccio" ajaccio
pg_dump -o -b -U ajaccio ajaccio>/scripts_backup/montage_backup/ajaccio/bdd_ajaccio.sql.tar
Dark_Schneider mais l'utilisateur ki lance la commande n'est pas ajaccio.
 
quand tu tapes "pg_dump ...." l'utilisateur ki tape et lance cette commande n'est pas ajaccio mais root.
 
lis l'encart de la doc ke je t'ai donné.
ident vérifie ke l'utilisateur ki se connecte à la base est le même ke celui ki lance la commande. si tu veux ke root puisse se connecter à la base en tant qu'ajaccio, il faut faire un alias dans le fichier pg_ident.conf ( cf doc )
 
 
su = switch user. su permet de se connecter ou de lancer une commande en tant qu'un autre utilisateur.
 
su -c "ma commande" monuser    <--- cette ligne signifie k'il faut lancer la commande "ma commande" sous l'identité de l'utilisateur monuser
Pour plus d'info :
man su
man psql
man pg_dump
tourist77

Dark_Schneider a écrit :

donc ma théorie est la bonne, pour utiliser la base il faut être connecté en tant k'utilisateur ajaccio.


 
mais pourtant je me connecte en ajaccio!!!

Dark_Schneider

tourist77 a écrit :

comment j'utilise su dans le script?


 
tu écris tel kel.
 
ce ke tu mets dans un script c'est la même chose ke ce ke tu entre directement dans une console/un terminal.

Dark_Schneider

tourist77 a écrit :

apres le #, y a le curseur qui clignote et qui attend que je fasse qqchose...


 
c'est la ligne de commande de Postgres.
tu peux entrée les commandes sql directement dedans.
 
\dt : liste des tables
\dS : liste des tables système
\? : liste des commandes Postgres
SELECT * FROM nomtable;  : affiche le contenu de nomtable

tourist77 comment j'utilise su dans le script?
Dark_Schneider donc ma théorie est la bonne, pour utiliser la base il faut être connecté en tant k'utilisateur ajaccio.
 
donc soit tu conf ident ( cf doc ), soit tu utilises su dans ton script.
 
lorsque les nombres défilait c'était le dump ki se faisait. lis la doc de postgresql
tourist77 apres le #, y a le curseur qui clignote et qui attend que je fasse qqchose...
tourist77 oki
alor ca me donne ca:
 
bash: /root/.bashrc: Permission non accordée
Welcome to psql 7.3.2, the PostgreSQL interactive terminal.
 
Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit
 
ajaccio=#  
 
 
sachant que ajaccio=login=nom de la base
Dark_Schneider désolé la commande est psql et non pgsql
tourist77 J'ai tapé la ligne et ca m'a repondu ca:
 
bash: /root/.bashrc: Permission non accordée
bash: line 1: pgsql: command not found
Dark_Schneider j'ai dis pgsql, c'est pour juste voir si tu te connectes à la base
 
cf doc ( ident )
 

Code :
  1. ident
  2. Obtain the operating system user name of the client (for TCP/IP connections by contacting the ident server on the client, for local connections by getting it from the operating system) and check if the user is allowed to connect as the requested database user by consulting the map specified after the ident key word.
  3. If you use the map sameuser, the user names are required to be identical. If not, the map name is looked up in the file pg_ident.conf in the same directory as pg_hba.conf. The connection is accepted if that file contains an entry for this map name with the operating-system user name and the requested PostgreSQL user name.
  4. For local connections, this only works on machines that support Unix-domain socket credentials (currently Linux, FreeBSD, NetBSD, OpenBSD, and BSD/OS).
  5. See Section 19.2.4 below for details.

arghbis même commande que celle que tu as faite, sauf que login est remplacé par celuiquigère
 
et RTFM non de nom!
tourist77 pgsql ou pg_dump?
Dark_Schneider

tourist77 a écrit :

arghbis: il ne me demande pas de password
 
dark_schneider: j'ai fais la commande su... et la ca fais 5min que y a des chiffres qui deroulent et c'est pas finit!!!


 
donc ca marche
 
fais CTRL+C
 
pour être sûr qu'il se connecte vraiment tu fais :
 
su  -c "pgsql -U celuikigere -d nomdelabase" celuikigere

Dark_Schneider cela signie ke l'utilisateur login n'a pas le droit d'accéder à la base
 
c'est la base ki refuse l'accès. lis stp la doc de postgres avant !
 
http://www.postgresql.org/docs/7.4 [...] ation.html
 
il doit être spécifié ke pour les connexion locales il faut utiliser ident dans le fichier pg_hba.conf
tourist77 arghbis: il ne me demande pas de password
 
dark_schneider: j'ai fais la commande su... et la ca fais 5min que y a des chiffres qui deroulent et c'est pas finit!!!
arghbis donc ton user login est soit inconnu, soit tu n'as pas donné le bon password quand il te l'a demandé
tourist77 arghbis:Je viens d'essayer mais:
 
psql: FATAL:  IDENT authentication failed for user "login"
Dark_Schneider kel est l'utilisateur ki gère la base ? postgres ? ou autre ? cela tu dois le savoir, ensuite tu lance la commande avec -U celuikigèrelabase
 
si vraiment cela merde la solution est la suivante :
 
su  -c "pg_dump -U celuikigere ....." celuikigere
 
 
cela lance la commande sous l'identité de l'utlisateur celuikigere
arghbis si tu fais un psql -U login taBase, ça marche
tourist77 Mon login existe bien et il est meme root
 
arghbis: ca me donne le meme resultat!!!
arghbis RTFM bourdail!
 

Code :
  1. pg_dump -o -b -U login -Ft nomDeTaBase >/scripts_backup/montage_backup/backup/bdd
  2. .sql.tar

GUG authentication failed for user "login"
il existe ? il a le droit de faire quoi ?
tourist77 J'ai donc essayé tout ca mais quand je le lance y a une erreur!
 
mon script:
 
pg_dump -o -b -U login -Ft >/scripts_backup/montage_backup/backup/bdd
.sql.tar
 
l'erreur:
pg_dump: [archiver (db)] connection to database "login" failed: FATAL:  IDENT authentication failed for user "login"
 
je comprend pas pourquoi... :(
Virolos http://www.postgresql.org/docs/cur [...] gdump.html
arghbis pg_dump ou pg_dumpall
tourist77 Bonjour,
 
Je dois éditer un script de backup d'une base de données postgre d'un serveur linux.
Est-ce que qq'un connait la manip?
merci
 

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)