Vous n'êtes pas identifié(e).
Pages : 1
Merci rjuju , j'ai du installer le module dblink , et maintenant ca fonctionne
Bonjour,
j'utilise postgresql "PostgreSQL 9.0.4, compiled by Visual C++ build 1500, 32-bit" sous windows et je veut insérer les données de ma table t1 vers une autre table t2 dans une base postgres 8.3 "PostgreSQL 8.3.11 on i486-pc-linux-gnu, compiled by GCC gcc-4.3.real (Debian 4.3.2-1.1) 4.3.2" sous linux .
Pou ce faire , j'ai écrit une fonction
[CODE]
CREATE OR REPLACE FUNCTION f_affiche ()
RETURNS VOID
AS $$
DECLARE
c1 cursor IS SELECT * FROM eth0;
eth0_row eth0%ROWTYPE;
BEGIN
FOR eth0_row IN c1
LOOP
PERFORM dblink_exec('dbname=suivBP host=10.128.1.2', 'INSERT INTO eth0 (rx,tx,datecurrent,heurecurrent) VALUES (' || eth0_row.rx || ', ' || eth0_row.tx || ', ' || eth0_row.datecurrent || ', ' || eth0_row.heurecurrent || ')');
END LOOP;
RETURN;
END
$$ LANGUAGE PLPGSQL
[CODE]
J'ai l'érreur suivant quand je lance ma fonction
ERREUR: la fonction dblink_exec(unknown, text) n'existe pas
LINE 1: SELECT dblink_exec('dbname=suivBP host=10.128.1.2', 'INSERT ...
^
HINT: Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
QUERY: SELECT dblink_exec('dbname=suivBP host=10.128.1.2', 'INSERT INTO eth0 (rx,tx,datecurrent,heurecurrent) VALUES (' || eth0_row.rx || ', ' || eth0_row.tx || ', ' || eth0_row.datecurrent || ', ' || eth0_row.heurecurrent || ')')
CONTEXT: PL/pgSQL function "f_affiche" line 8 at PERFORM
********** Erreur **********
ERREUR: la fonction dblink_exec(unknown, text) n'existe pas
État SQL :42883
Astuce : Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
Contexte : PL/pgSQL function "f_affiche" line 8 at PERFORM
Est ce que c'est lier au version des deux base ?
Si oui, est que vous avez des idées ?
Je suis à Madagascar en ce moment, et je travaille entant que développeur et administrateur de base de donnée dans une entreprise de numérisation de donnée, la ou l'on cotie tous les jours plusieurs données .
Bonjour,
je vient de Madagascar, et j'aimerai savoir comment on peut trouver une bourse de formation en administration de la base Postgres
J'utilise 2 machine ayant comme SE windows XP et comme base PostgreSQL 8.4 .
Je voudrai faire une replication Logshipping sur les deux bases mais je ne trouve pas comment faire sous windows.
Est ce que quelqu'un sait comment faire ou pourrait me donner un lien ?
J'utilise postgres 8.4 et j'ai un IP fixe et un port 5432 ouvert qui me permet de faire une connexion vers l'exterieur (via internet) .
Je voudrai securisé mon serveur de BD avec un SSL mais je ne trouve pas de reponse.
Comment on procede ?
J'ai trouvé la solution et la cause de mon probleme.
En effet, j'ai eu un probleme d'acces , il a fallu recréer l'utilisateur enterprisedb qui a été supprimé par la mise à jour de windows.
C'est pourquoi , il est impossible d'écrire dans obal/pg_control .
Merci
J'utilise Postgres Studio 8.3R2 sur windwos xp sp2, et hier j'ai eu comme message dans le enterprisedb-2010-05-16_000000.log
sur le path C:\PostgresPlus\8.3R2AS\data\dbserver_logs
j'ai
2010-05-16 03:30:02 LOG: received smart shutdown request
2010-05-16 23:00:08 FATAL: the database system is shutting down
je ne sais pas pourquoi la base s'est arreté en ce moment.
En essayant de redémarrer ma base ce 2010-05-17,
J'ai le message d'érreur suivant
l'érreur system 5 s'est produite
et la base ne démarre pas , pour contourner l'érreur j'ai donc lancé à la main le commande suivante :
"C:\PostgresPlus\8.3R2AS\dbserver\bin\pg_ctl.exe" start -N "EDB_8.3R2_5444" -D "C:\PostgresPlus\8.3R2AS\data" -l "C:\PostgresPlus\8.3R2AS\data\dbserver_logs\logs.txt"
et j'ai le message suivante
pg_ctl: another server might be running; trying to start server anyway
pg_ctl : impossible de lancer le serveur
Examinez le journal des traces.
J'ai donc vérifier le fichier C:\PostgresPlus\8.3R2AS\data\dbserver_logs\logs.txt.
2010-05-17 10:30:42 LOG:
** EnterpriseDB Dynamic Tuning Agent ********************************************
* System Utilization: 66 % *
* Database Version: 8.3.0.106 *
* Operating System Version: Windows_NT *
* Number of Processors: 1 *
* Processor Type: x86 Family 6 Model 26 Stepping 5, GenuineIntel *
* Processor Architecture: x86 *
* Database Size: 0.1 GB *
* RAM: 0.8 GB *
* Max DB Connections: 100 *
* Autovacuum: off *
* Autovacuum Naptime: 60 Seconds *
*********************************************************************************
2010-05-17 10:30:42 PANIC: could not open control file "global/pg_control": Permission denied
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Pouvez vous m'aider svp ?
Quelles sont les différences entre PostgreSQL 8.2 et 8.4 ?
OK merci pour la précision , j'ai fait comme suite :
select * from matable order by macolonne desc limit 1
et j'ai en retour la première colonne de matable.
Quelle est l'équivalence de rownum dans postgres , en faite seul posgres advance server possede cette colonne .
En faite, je veux faire un export sélective des données et je veux aussi que le fichier de sortie soit pas facile à lire (crypter).
Oui, mais j'ai un petit probleme dans ce cas, c'est que mon fichier en sortie ne sera pas cripté .
Je vais peut etre faire un export binaire .
Merci
Est ce que dans postgres on peut faire un pg_dump avec un clause where comme ce qu'on fait sur oracle avec l'export
$ exp system/XXXXX file=/ora/admin/dba/log/exp_query.dmp tables=formation.dvp_loader query="'where salaire > 500'"
J'ai déja fait des recherche mais il s'avere que je n'ai trouvé aucune versions qui supporte cela ?
J'avais pas pensé à cela, comme vous avez dit donc j'ai crée l'utilisateur postgres sur la seconde machine et maintenant ca marche , merci .
Par contre dans le doc de postgres j'ai vue qu'il y avait un autre moyen de faire un sauvegarde celle qui utilise le
select pg_start_backup('label');
select pg_stop_backup();"
Quelle sont les roles de ces deux fonctions ?
Je suis sous windows XP et j'utilise postgres 8.4.
J'ai essayé de monter une base standby avec le principe du Log shipping, ci après la démarche que j'avais fait:
1- j'ai modifié postgresql.conf comme suit :
archive_mode = on
archive_command = 'copy "%p" "C:\\DBA\\sauvegarde\\%f"'
archive_timeout = 60
2- j'ai démarré ma base base1
3- après démarrage, les fichiers journaux sont créer dans le path C:\DBA\sauvegarde et dans C:\Program Files\PostgreSQL\8.4\data\pg_xlog\archive_status , j'ai les fichiers journaux misent en extension .done
4- j'ai arrêté ma base afin de faire un sauvegarde à froid des data , j'ai donc copié les fichiers C:\Program Files\PostgreSQL\8.4\data dans un autre machine base2 .
5- j'ai installé postgres 8,4 sur la machine base2.
6- j'ai copier les contenues du sauvegarde dans la base2.
7- j'ai supprimer les fichiers journal dans le path C:\Program Files\PostgreSQL\8.4\data\pg_xlog
8- j'ai ensuite créer le fichier recovery.conf et j'ai mis
restore_command = 'copy "C:\\DBA\\sauvegarde\\%f" "%p"'
9 - j'ai démarré la base2
Le problème c'est que je n'arrive pas à faire démarrer ma base base2.
Est ce que vous avez des solutions ?
j'ai fait :
sc start "postgresql-8.4"
Ca démarre maintenant.
Merci pour votre aide.
Mon but était de créer un script de sauvegarde à froid.
- arrêt de la base
- copie des fichiers data dans un autre serveur
- démarrage de la base
Lors de l'arrêt je ne spécifie par l'utilisateur postgres et il 'n y pas d'erreur, le service s'arrête correctement.
"C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe" stop -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -m fast -w
xcopy "C:\Program Files\PostgreSQL\8.4\data" "\\serveur\C$\data"
J'ai ajouté donc dans mon ligne de commande sur le démarrage l'utilisateur.
"C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe" start -N "postgresql-8.4" -U postgres -P postgres -D "C:/Program Files/PostgreSQL/8.4/data" -w
Mais l'erreur persiste toujours
en attente du démarrage du serveur...2010-04-26 18:03:52 MSDFATAL: n'a pas pu créer le journal applicatif « pg_log/postgresql-2010-04-26_180352.log » : Permission denied
Est ce qu'il y pas d'autre commande qui permet de démarrer la base à part pg_ctl ?
Ce qui est étonnant c'est lorsque je démarre le service postgresql-8.4 via services.msc il n'y a pas de message d'erreur, cependant dans la propriété de ce service postgresql-8.4 sur le libellé Chemin d'accès des fichiers exécutables j'ai :
C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -w
Et le fichier log postgresql-2010-04-27_152300.log a été créé dans le path C:\Program Files\PostgreSQL\8.4\data\pg_log.
Est-ce que cela ne signifie-t-il pas que postgres a accès a ce path ?
J’essaie de démarrer ma base avec la ligne de commande ci après:
pg_ctl start -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -w
Et j'ai le message d'erreur suivante :
En attente du démarrage du serveur...2010-04-26 18:03:52 MSDFATAL: n'a pas pu créer le journal applicatif « pg_log/postgresql-2010-04-26_180352.log » : Permission denied
Pourtant, j'ai déjà créé un utilisateur postgres et qui a le contrôle total sur le dossier pg_log.
Est-ce que quelqu'un peut m'aider ?
Pages : 1